Compare commits

...

378 Commits

Author SHA1 Message Date
nobody
0b65e63c66 This commit was manufactured by cvs2svn to create tag 'gdb-1999-06-28'.
Sprout from master 1999-06-28 23:04:32 UTC Jason Molenda <jmolenda@apple.com> 'import gdb-1999-06-28 snapshot'
Cherrypick from FSF 1999-04-27 01:30:31 UTC Stan Shebs <shebs@codesourcery.com> 'import gdb-19990422 snapshot':
    readline/CHANGELOG
    readline/CHANGES
    readline/COPYING
    readline/INSTALL
    readline/MANIFEST
    readline/Makefile.in
    readline/README
    readline/acconfig.h
    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/display.c
    readline/doc/Makefile.in
    readline/doc/hist.texinfo
    readline/doc/hstech.texinfo
    readline/doc/hsuser.texinfo
    readline/doc/readline.0
    readline/doc/readline.3
    readline/doc/rlman.texinfo
    readline/doc/rltech.texinfo
    readline/doc/rluser.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/rltest.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/posixjmp.h
    readline/posixstat.h
    readline/readline.c
    readline/readline.h
    readline/rlconf.h
    readline/rldefs.h
    readline/rltty.c
    readline/rltty.h
    readline/rlwinsize.h
    readline/search.c
    readline/shell.c
    readline/signals.c
    readline/support/config.guess
    readline/support/config.sub
    readline/support/install.sh
    readline/support/mkdirs
    readline/support/mkdist
    readline/tcap.h
    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
Delete:
    .cvsignore
    COPYING
    COPYING.LIB
    ChangeLog
    Makefile.in
    README
    bfd/COPYING
    bfd/ChangeLog
    bfd/ChangeLog-9193
    bfd/ChangeLog-9495
    bfd/ChangeLog-9697
    bfd/Makefile.am
    bfd/Makefile.in
    bfd/PORTING
    bfd/README
    bfd/TODO
    bfd/acinclude.m4
    bfd/aclocal.m4
    bfd/aix386-core.c
    bfd/aout-adobe.c
    bfd/aout-arm.c
    bfd/aout-encap.c
    bfd/aout-ns32k.c
    bfd/aout-sparcle.c
    bfd/aout-target.h
    bfd/aout-tic30.c
    bfd/aout0.c
    bfd/aout32.c
    bfd/aout64.c
    bfd/aoutf1.h
    bfd/aoutx.h
    bfd/archive.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/cf-i386lynx.c
    bfd/cf-m68klynx.c
    bfd/cf-sparclynx.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-go32.c
    bfd/coff-h8300.c
    bfd/coff-h8500.c
    bfd/coff-i386.c
    bfd/coff-i860.c
    bfd/coff-i960.c
    bfd/coff-m68k.c
    bfd/coff-m88k.c
    bfd/coff-mcore.c
    bfd/coff-mips.c
    bfd/coff-pmac.c
    bfd/coff-ppc.c
    bfd/coff-rs6000.c
    bfd/coff-sh.c
    bfd/coff-sparc.c
    bfd/coff-stgo32.c
    bfd/coff-svm68k.c
    bfd/coff-tic30.c
    bfd/coff-tic80.c
    bfd/coff-u68k.c
    bfd/coff-w65.c
    bfd/coff-we32k.c
    bfd/coff-z8k.c
    bfd/coffcode.h
    bfd/coffgen.c
    bfd/cofflink.c
    bfd/coffswap.h
    bfd/config.bfd
    bfd/config.in
    bfd/configure
    bfd/configure.bat
    bfd/configure.com
    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-d10v.c
    bfd/cpu-d30v.c
    bfd/cpu-fr30.c
    bfd/cpu-h8300.c
    bfd/cpu-h8500.c
    bfd/cpu-hppa.c
    bfd/cpu-i386.c
    bfd/cpu-i860.c
    bfd/cpu-i960.c
    bfd/cpu-m10200.c
    bfd/cpu-m10300.c
    bfd/cpu-m32r.c
    bfd/cpu-m68k.c
    bfd/cpu-m88k.c
    bfd/cpu-mcore.c
    bfd/cpu-mips.c
    bfd/cpu-ns32k.c
    bfd/cpu-powerpc.c
    bfd/cpu-rs6000.c
    bfd/cpu-sh.c
    bfd/cpu-sparc.c
    bfd/cpu-tic30.c
    bfd/cpu-tic80.c
    bfd/cpu-v850.c
    bfd/cpu-vax.c
    bfd/cpu-w65.c
    bfd/cpu-we32k.c
    bfd/cpu-z8k.c
    bfd/demo64.c
    bfd/dep-in.sed
    bfd/doc/ChangeLog
    bfd/doc/Makefile.am
    bfd/doc/Makefile.in
    bfd/doc/bfd.texinfo
    bfd/doc/bfdint.texi
    bfd/doc/bfdsumm.texi
    bfd/doc/chew.c
    bfd/doc/doc.str
    bfd/doc/makefile.vms
    bfd/doc/proto.str
    bfd/dwarf1.c
    bfd/dwarf2.c
    bfd/ecoff.c
    bfd/ecofflink.c
    bfd/ecoffswap.h
    bfd/elf-bfd.h
    bfd/elf-hppa.h
    bfd/elf-m10200.c
    bfd/elf-m10300.c
    bfd/elf.c
    bfd/elf32-arc.c
    bfd/elf32-arm.h
    bfd/elf32-d10v.c
    bfd/elf32-d30v.c
    bfd/elf32-fr30.c
    bfd/elf32-gen.c
    bfd/elf32-hppa.c
    bfd/elf32-hppa.h
    bfd/elf32-i386.c
    bfd/elf32-i860.c
    bfd/elf32-i960.c
    bfd/elf32-m32r.c
    bfd/elf32-m68k.c
    bfd/elf32-m88k.c
    bfd/elf32-mcore.c
    bfd/elf32-mips.c
    bfd/elf32-ppc.c
    bfd/elf32-sh.c
    bfd/elf32-sparc.c
    bfd/elf32-v850.c
    bfd/elf32.c
    bfd/elf64-alpha.c
    bfd/elf64-gen.c
    bfd/elf64-mips.c
    bfd/elf64-sparc.c
    bfd/elf64.c
    bfd/elfarm-nabi.c
    bfd/elfarm-oabi.c
    bfd/elfcode.h
    bfd/elfcore.h
    bfd/elflink.c
    bfd/elflink.h
    bfd/elfxx-target.h
    bfd/epoc-pe-arm.c
    bfd/epoc-pei-arm.c
    bfd/format.c
    bfd/freebsd.h
    bfd/gen-aout.c
    bfd/genlink.h
    bfd/go32stub.h
    bfd/hash.c
    bfd/host-aout.c
    bfd/hosts/alphalinux.h
    bfd/hosts/alphavms.h
    bfd/hosts/decstation.h
    bfd/hosts/delta68.h
    bfd/hosts/dpx2.h
    bfd/hosts/hp300bsd.h
    bfd/hosts/i386bsd.h
    bfd/hosts/i386linux.h
    bfd/hosts/i386mach3.h
    bfd/hosts/i386sco.h
    bfd/hosts/i860mach3.h
    bfd/hosts/m68kaux.h
    bfd/hosts/m68klinux.h
    bfd/hosts/m88kmach3.h
    bfd/hosts/mipsbsd.h
    bfd/hosts/mipsmach3.h
    bfd/hosts/news-mips.h
    bfd/hosts/news.h
    bfd/hosts/pc532mach.h
    bfd/hosts/riscos.h
    bfd/hosts/symmetry.h
    bfd/hosts/tahoe.h
    bfd/hosts/vaxbsd.h
    bfd/hosts/vaxult.h
    bfd/hosts/vaxult2.h
    bfd/hp300bsd.c
    bfd/hp300hpux.c
    bfd/hppa_stubs.h
    bfd/hppabsd-core.c
    bfd/hpux-core.c
    bfd/i386aout.c
    bfd/i386bsd.c
    bfd/i386dynix.c
    bfd/i386freebsd.c
    bfd/i386linux.c
    bfd/i386lynx.c
    bfd/i386mach3.c
    bfd/i386msdos.c
    bfd/i386netbsd.c
    bfd/i386os9k.c
    bfd/ieee.c
    bfd/ihex.c
    bfd/init.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/libhppa.h
    bfd/libieee.h
    bfd/libnlm.h
    bfd/liboasys.h
    bfd/linker.c
    bfd/lynx-core.c
    bfd/m68k4knetbsd.c
    bfd/m68klinux.c
    bfd/m68klynx.c
    bfd/m68knetbsd.c
    bfd/m88kmach3.c
    bfd/makefile.dos
    bfd/makefile.vms
    bfd/mipsbsd.c
    bfd/mpw-config.in
    bfd/mpw-make.sed
    bfd/netbsd-core.c
    bfd/netbsd.h
    bfd/newsos3.c
    bfd/nlm-target.h
    bfd/nlm.c
    bfd/nlm32-alpha.c
    bfd/nlm32-i386.c
    bfd/nlm32-ppc.c
    bfd/nlm32-sparc.c
    bfd/nlm32.c
    bfd/nlm64.c
    bfd/nlmcode.h
    bfd/nlmswap.h
    bfd/ns32k.h
    bfd/ns32knetbsd.c
    bfd/oasys.c
    bfd/opncls.c
    bfd/osf-core.c
    bfd/pc532-mach.c
    bfd/pe-arm.c
    bfd/pe-i386.c
    bfd/pe-mcore.c
    bfd/pe-ppc.c
    bfd/pei-arm.c
    bfd/pei-i386.c
    bfd/pei-mcore.c
    bfd/pei-ppc.c
    bfd/peicode.h
    bfd/po/Make-in
    bfd/po/POTFILES.in
    bfd/po/bfd.pot
    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/som.c
    bfd/som.h
    bfd/sparclinux.c
    bfd/sparclynx.c
    bfd/sparcnetbsd.c
    bfd/srec.c
    bfd/stab-syms.c
    bfd/stabs.c
    bfd/stamp-h.in
    bfd/sunos.c
    bfd/syms.c
    bfd/sysdep.h
    bfd/targets.c
    bfd/targmatch.sed
    bfd/tekhex.c
    bfd/trad-core.c
    bfd/vaxnetbsd.c
    bfd/versados.c
    bfd/vms-gsd.c
    bfd/vms-hdr.c
    bfd/vms-misc.c
    bfd/vms-tir.c
    bfd/vms.c
    bfd/vms.h
    bfd/xcofflink.c
    binutils/ChangeLog
    binutils/Makefile.am
    binutils/Makefile.in
    binutils/NEWS
    binutils/README
    binutils/acinclude.m4
    binutils/aclocal.m4
    binutils/addr2line.1
    binutils/addr2line.c
    binutils/ar.1
    binutils/ar.c
    binutils/arlex.l
    binutils/arparse.y
    binutils/arsup.c
    binutils/arsup.h
    binutils/binutils.texi
    binutils/bucomm.c
    binutils/bucomm.h
    binutils/budbg.h
    binutils/coffdump.c
    binutils/coffgrok.c
    binutils/coffgrok.h
    binutils/config.in
    binutils/configure
    binutils/configure.bat
    binutils/configure.com
    binutils/configure.in
    binutils/cxxfilt.man
    binutils/debug.c
    binutils/debug.h
    binutils/deflex.l
    binutils/defparse.y
    binutils/dep-in.sed
    binutils/dlltool.c
    binutils/dlltool.h
    binutils/dllwrap.c
    binutils/dyn-string.c
    binutils/dyn-string.h
    binutils/filemode.c
    binutils/ieee.c
    binutils/is-ranlib.c
    binutils/is-strip.c
    binutils/mac-binutils.r
    binutils/makefile.vms-in
    binutils/maybe-ranlib.c
    binutils/maybe-strip.c
    binutils/mpw-config.in
    binutils/mpw-make.sed
    binutils/nlmconv.1
    binutils/nlmconv.c
    binutils/nlmconv.h
    binutils/nlmheader.y
    binutils/nm.1
    binutils/nm.c
    binutils/not-ranlib.c
    binutils/not-strip.c
    binutils/objcopy.1
    binutils/objcopy.c
    binutils/objdump.1
    binutils/objdump.c
    binutils/po/Make-in
    binutils/po/POTFILES.in
    binutils/po/binutils.pot
    binutils/prdbg.c
    binutils/ranlib.1
    binutils/ranlib.sh
    binutils/rclex.l
    binutils/rcparse.y
    binutils/rdcoff.c
    binutils/rddbg.c
    binutils/readelf.c
    binutils/rename.c
    binutils/resbin.c
    binutils/rescoff.c
    binutils/resrc.c
    binutils/resres.c
    binutils/sanity.sh
    binutils/size.1
    binutils/size.c
    binutils/srconv.c
    binutils/stabs.c
    binutils/stamp-h.in
    binutils/strings.1
    binutils/strings.c
    binutils/strip.1
    binutils/sysdump.c
    binutils/sysinfo.y
    binutils/syslex.l
    binutils/sysroff.info
    binutils/testsuite/ChangeLog
    binutils/testsuite/binutils-all/ar.exp
    binutils/testsuite/binutils-all/bintest.s
    binutils/testsuite/binutils-all/hppa/addendbug.s
    binutils/testsuite/binutils-all/hppa/objdump.exp
    binutils/testsuite/binutils-all/nm.exp
    binutils/testsuite/binutils-all/objcopy.exp
    binutils/testsuite/binutils-all/objdump.exp
    binutils/testsuite/binutils-all/readelf.exp
    binutils/testsuite/binutils-all/readelf.h
    binutils/testsuite/binutils-all/readelf.r
    binutils/testsuite/binutils-all/readelf.s
    binutils/testsuite/binutils-all/readelf.ss
    binutils/testsuite/binutils-all/readelf.wi
    binutils/testsuite/binutils-all/size.exp
    binutils/testsuite/binutils-all/testprog.c
    binutils/testsuite/config/default.exp
    binutils/testsuite/config/hppa.sed
    binutils/testsuite/lib/utils-lib.exp
    binutils/version.c
    binutils/windres.c
    binutils/windres.h
    binutils/winduni.c
    binutils/winduni.h
    binutils/wrstabs.c
    config-ml.in
    config.guess
    config.if
    config.sub
    config/ChangeLog
    config/acinclude.m4
    config/mh-a68bsd
    config/mh-aix386
    config/mh-aix43
    config/mh-apollo68
    config/mh-armpic
    config/mh-cxux
    config/mh-cygwin
    config/mh-decstation
    config/mh-delta88
    config/mh-dgux
    config/mh-dgux386
    config/mh-djgpp
    config/mh-elfalphapic
    config/mh-hp300
    config/mh-hpux
    config/mh-hpux8
    config/mh-interix
    config/mh-irix4
    config/mh-irix5
    config/mh-irix6
    config/mh-lynxos
    config/mh-lynxrs6k
    config/mh-m68kpic
    config/mh-mingw32
    config/mh-ncr3000
    config/mh-ncrsvr43
    config/mh-necv4
    config/mh-papic
    config/mh-ppcpic
    config/mh-riscos
    config/mh-sco
    config/mh-solaris
    config/mh-sparcpic
    config/mh-sun3
    config/mh-sysv
    config/mh-sysv4
    config/mh-sysv5
    config/mh-vaxult2
    config/mh-x86pic
    config/mpw-mh-mpw
    config/mpw/ChangeLog
    config/mpw/MoveIfChange
    config/mpw/README
    config/mpw/forward-include
    config/mpw/g-mpw-make.sed
    config/mpw/mpw-touch
    config/mpw/mpw-true
    config/mpw/null-command
    config/mpw/open-brace
    config/mpw/tr-7to8-src
    config/mpw/true
    config/mt-armpic
    config/mt-d30v
    config/mt-elfalphapic
    config/mt-linux
    config/mt-m68kpic
    config/mt-netware
    config/mt-ospace
    config/mt-papic
    config/mt-ppcpic
    config/mt-sparcpic
    config/mt-v810
    config/mt-x86pic
    configure
    configure.bat
    configure.in
    etc/ChangeLog
    etc/Makefile.in
    etc/add-log.el
    etc/add-log.vi
    etc/configbuild.ein
    etc/configbuild.fig
    etc/configbuild.jin
    etc/configbuild.tin
    etc/configdev.ein
    etc/configdev.fig
    etc/configdev.jin
    etc/configdev.tin
    etc/configure
    etc/configure.in
    etc/configure.texi
    etc/make-stds.texi
    etc/standards.texi
    gas/CONTRIBUTORS
    gas/COPYING
    gas/ChangeLog
    gas/ChangeLog-9295
    gas/ChangeLog-9697
    gas/Makefile.am
    gas/Makefile.in
    gas/NEWS
    gas/README
    gas/README-vms
    gas/acinclude.m4
    gas/aclocal.m4
    gas/app.c
    gas/as.c
    gas/as.h
    gas/asintl.h
    gas/atof-generic.c
    gas/bignum-copy.c
    gas/bignum.h
    gas/bit_fix.h
    gas/cgen.c
    gas/cgen.h
    gas/cond.c
    gas/config-gas.com
    gas/config.in
    gas/config/aout_gnu.h
    gas/config/atof-ieee.c
    gas/config/atof-tahoe.c
    gas/config/atof-vax.c
    gas/config/e-i386coff.c
    gas/config/e-i386elf.c
    gas/config/e-mipsecoff.c
    gas/config/e-mipself.c
    gas/config/go32.cfg
    gas/config/itbl-mips.h
    gas/config/m68k-parse.h
    gas/config/m68k-parse.y
    gas/config/m88k-opcode.h
    gas/config/obj-aout.c
    gas/config/obj-aout.h
    gas/config/obj-bout.c
    gas/config/obj-bout.h
    gas/config/obj-coff.c
    gas/config/obj-coff.h
    gas/config/obj-ecoff.c
    gas/config/obj-ecoff.h
    gas/config/obj-elf.c
    gas/config/obj-elf.h
    gas/config/obj-evax.c
    gas/config/obj-evax.h
    gas/config/obj-generic.c
    gas/config/obj-generic.h
    gas/config/obj-hp300.c
    gas/config/obj-hp300.h
    gas/config/obj-ieee.c
    gas/config/obj-ieee.h
    gas/config/obj-multi.c
    gas/config/obj-multi.h
    gas/config/obj-som.c
    gas/config/obj-som.h
    gas/config/obj-vms.c
    gas/config/obj-vms.h
    gas/config/tc-a29k.c
    gas/config/tc-a29k.h
    gas/config/tc-alpha.c
    gas/config/tc-alpha.h
    gas/config/tc-arc.c
    gas/config/tc-arc.h
    gas/config/tc-arm.c
    gas/config/tc-arm.h
    gas/config/tc-d10v.c
    gas/config/tc-d10v.h
    gas/config/tc-d30v.c
    gas/config/tc-d30v.h
    gas/config/tc-fr30.c
    gas/config/tc-fr30.h
    gas/config/tc-generic.c
    gas/config/tc-generic.h
    gas/config/tc-h8300.c
    gas/config/tc-h8300.h
    gas/config/tc-h8500.c
    gas/config/tc-h8500.h
    gas/config/tc-hppa.c
    gas/config/tc-hppa.h
    gas/config/tc-i386.c
    gas/config/tc-i386.h
    gas/config/tc-i860.c
    gas/config/tc-i860.h
    gas/config/tc-i960.c
    gas/config/tc-i960.h
    gas/config/tc-m32r.c
    gas/config/tc-m32r.h
    gas/config/tc-m68851.h
    gas/config/tc-m68k.c
    gas/config/tc-m68k.h
    gas/config/tc-m88k.c
    gas/config/tc-m88k.h
    gas/config/tc-mcore.c
    gas/config/tc-mcore.h
    gas/config/tc-mips.c
    gas/config/tc-mips.h
    gas/config/tc-mn10200.c
    gas/config/tc-mn10200.h
    gas/config/tc-mn10300.c
    gas/config/tc-mn10300.h
    gas/config/tc-ns32k.c
    gas/config/tc-ns32k.h
    gas/config/tc-ppc.c
    gas/config/tc-ppc.h
    gas/config/tc-sh.c
    gas/config/tc-sh.h
    gas/config/tc-sparc.c
    gas/config/tc-sparc.h
    gas/config/tc-tahoe.c
    gas/config/tc-tahoe.h
    gas/config/tc-tic30.c
    gas/config/tc-tic30.h
    gas/config/tc-tic80.c
    gas/config/tc-tic80.h
    gas/config/tc-v850.c
    gas/config/tc-v850.h
    gas/config/tc-vax.c
    gas/config/tc-vax.h
    gas/config/tc-w65.c
    gas/config/tc-w65.h
    gas/config/tc-z8k.c
    gas/config/tc-z8k.h
    gas/config/te-386bsd.h
    gas/config/te-aux.h
    gas/config/te-delt88.h
    gas/config/te-delta.h
    gas/config/te-dpx2.h
    gas/config/te-dynix.h
    gas/config/te-epoc-pe.h
    gas/config/te-generic.h
    gas/config/te-go32.h
    gas/config/te-hp300.h
    gas/config/te-hppa.h
    gas/config/te-i386aix.h
    gas/config/te-ic960.h
    gas/config/te-linux.h
    gas/config/te-lnews.h
    gas/config/te-lynx.h
    gas/config/te-mach.h
    gas/config/te-macos.h
    gas/config/te-multi.h
    gas/config/te-nbsd.h
    gas/config/te-nbsd532.h
    gas/config/te-pc532mach.h
    gas/config/te-pe.h
    gas/config/te-ppcnw.h
    gas/config/te-psos.h
    gas/config/te-riscix.h
    gas/config/te-sparcaout.h
    gas/config/te-sun3.h
    gas/config/te-svr4.h
    gas/config/te-sysv32.h
    gas/config/vax-inst.h
    gas/config/vms-a-conf.h
    gas/config/vms-conf.h
    gas/configure
    gas/configure.bat
    gas/configure.in
    gas/debug.c
    gas/dep-in.sed
    gas/depend.c
    gas/doc/Makefile.am
    gas/doc/Makefile.in
    gas/doc/all.texi
    gas/doc/as.1
    gas/doc/as.texinfo
    gas/doc/c-a29k.texi
    gas/doc/c-arm.texi
    gas/doc/c-d10v.texi
    gas/doc/c-d30v.texi
    gas/doc/c-h8300.texi
    gas/doc/c-h8500.texi
    gas/doc/c-hppa.texi
    gas/doc/c-i386.texi
    gas/doc/c-i960.texi
    gas/doc/c-m32r.texi
    gas/doc/c-m68k.texi
    gas/doc/c-mips.texi
    gas/doc/c-ns32k.texi
    gas/doc/c-sh.texi
    gas/doc/c-sparc.texi
    gas/doc/c-v850.texi
    gas/doc/c-vax.texi
    gas/doc/c-z8k.texi
    gas/doc/gasp.texi
    gas/doc/h8.texi
    gas/doc/internals.texi
    gas/dwarf2dbg.c
    gas/dwarf2dbg.h
    gas/ecoff.c
    gas/ecoff.h
    gas/ehopt.c
    gas/emul-target.h
    gas/emul.h
    gas/expr.c
    gas/expr.h
    gas/flonum-copy.c
    gas/flonum-konst.c
    gas/flonum-mult.c
    gas/flonum.h
    gas/frags.c
    gas/frags.h
    gas/gasp.c
    gas/gdbinit.in
    gas/hash.c
    gas/hash.h
    gas/input-file.c
    gas/input-file.h
    gas/input-scrub.c
    gas/itbl-lex.l
    gas/itbl-ops.c
    gas/itbl-ops.h
    gas/itbl-parse.y
    gas/link.cmd
    gas/listing.c
    gas/listing.h
    gas/literal.c
    gas/mac-as.r
    gas/macro.c
    gas/macro.h
    gas/makefile.vms
    gas/messages.c
    gas/mpw-config.in
    gas/mpw-make.sed
    gas/obj.h
    gas/output-file.c
    gas/output-file.h
    gas/po/Make-in
    gas/po/POTFILES.in
    gas/po/gas.pot
    gas/read.c
    gas/read.h
    gas/sb.c
    gas/sb.h
    gas/stabs.c
    gas/stamp-h.in
    gas/struc-symbol.h
    gas/subsegs.c
    gas/subsegs.h
    gas/symbols.c
    gas/symbols.h
    gas/tc.h
    gas/testsuite/ChangeLog
    gas/testsuite/config/default.exp
    gas/testsuite/gas/all/align.d
    gas/testsuite/gas/all/align.s
    gas/testsuite/gas/all/cofftag.d
    gas/testsuite/gas/all/cofftag.s
    gas/testsuite/gas/all/comment.s
    gas/testsuite/gas/all/cond.d
    gas/testsuite/gas/all/cond.s
    gas/testsuite/gas/all/diff1.s
    gas/testsuite/gas/all/float.s
    gas/testsuite/gas/all/gas.exp
    gas/testsuite/gas/all/itbl
    gas/testsuite/gas/all/itbl-test.c
    gas/testsuite/gas/all/itbl.s
    gas/testsuite/gas/all/p1480.s
    gas/testsuite/gas/all/p2425.s
    gas/testsuite/gas/all/struct.d
    gas/testsuite/gas/all/struct.s
    gas/testsuite/gas/all/x930509.s
    gas/testsuite/gas/alpha/fp.d
    gas/testsuite/gas/alpha/fp.exp
    gas/testsuite/gas/alpha/fp.s
    gas/testsuite/gas/arc/alias.d
    gas/testsuite/gas/arc/alias.s
    gas/testsuite/gas/arc/arc.exp
    gas/testsuite/gas/arc/branch.d
    gas/testsuite/gas/arc/branch.s
    gas/testsuite/gas/arc/flag.d
    gas/testsuite/gas/arc/flag.s
    gas/testsuite/gas/arc/insn3.d
    gas/testsuite/gas/arc/insn3.s
    gas/testsuite/gas/arc/j.d
    gas/testsuite/gas/arc/j.s
    gas/testsuite/gas/arc/ld.d
    gas/testsuite/gas/arc/ld.s
    gas/testsuite/gas/arc/math.d
    gas/testsuite/gas/arc/math.s
    gas/testsuite/gas/arc/sshift.d
    gas/testsuite/gas/arc/sshift.s
    gas/testsuite/gas/arc/st.d
    gas/testsuite/gas/arc/st.s
    gas/testsuite/gas/arc/warn.exp
    gas/testsuite/gas/arc/warn.s
    gas/testsuite/gas/arm/arch4t.s
    gas/testsuite/gas/arm/arm.exp
    gas/testsuite/gas/arm/arm3.s
    gas/testsuite/gas/arm/arm6.s
    gas/testsuite/gas/arm/arm7dm.s
    gas/testsuite/gas/arm/arm7t.d
    gas/testsuite/gas/arm/arm7t.s
    gas/testsuite/gas/arm/copro.s
    gas/testsuite/gas/arm/float.s
    gas/testsuite/gas/arm/immed.s
    gas/testsuite/gas/arm/inst.d
    gas/testsuite/gas/arm/inst.s
    gas/testsuite/gas/arm/le-fpconst.d
    gas/testsuite/gas/arm/le-fpconst.s
    gas/testsuite/gas/arm/thumb.s
    gas/testsuite/gas/d30v/align.d
    gas/testsuite/gas/d30v/align.s
    gas/testsuite/gas/d30v/array.d
    gas/testsuite/gas/d30v/array.s
    gas/testsuite/gas/d30v/bittest.d
    gas/testsuite/gas/d30v/bittest.l
    gas/testsuite/gas/d30v/bittest.s
    gas/testsuite/gas/d30v/d30.exp
    gas/testsuite/gas/d30v/guard-debug.d
    gas/testsuite/gas/d30v/guard-debug.s
    gas/testsuite/gas/d30v/guard.d
    gas/testsuite/gas/d30v/guard.s
    gas/testsuite/gas/d30v/inst.d
    gas/testsuite/gas/d30v/inst.s
    gas/testsuite/gas/d30v/label-debug.d
    gas/testsuite/gas/d30v/label-debug.s
    gas/testsuite/gas/d30v/label.d
    gas/testsuite/gas/d30v/label.s
    gas/testsuite/gas/d30v/mul.d
    gas/testsuite/gas/d30v/mul.s
    gas/testsuite/gas/d30v/opt.d
    gas/testsuite/gas/d30v/opt.s
    gas/testsuite/gas/d30v/reloc.d
    gas/testsuite/gas/d30v/reloc.s
    gas/testsuite/gas/d30v/serial.l
    gas/testsuite/gas/d30v/serial.s
    gas/testsuite/gas/d30v/serial2.l
    gas/testsuite/gas/d30v/serial2.s
    gas/testsuite/gas/d30v/serial2O.l
    gas/testsuite/gas/d30v/serial2O.s
    gas/testsuite/gas/d30v/warn_oddreg.l
    gas/testsuite/gas/d30v/warn_oddreg.s
    gas/testsuite/gas/elf/elf.exp
    gas/testsuite/gas/elf/section0.d
    gas/testsuite/gas/elf/section0.s
    gas/testsuite/gas/elf/section1.d
    gas/testsuite/gas/elf/section1.s
    gas/testsuite/gas/fr30/allinsn.d
    gas/testsuite/gas/fr30/allinsn.exp
    gas/testsuite/gas/fr30/allinsn.s
    gas/testsuite/gas/fr30/fr30.exp
    gas/testsuite/gas/h8300/addsub.s
    gas/testsuite/gas/h8300/addsubh.s
    gas/testsuite/gas/h8300/addsubs.s
    gas/testsuite/gas/h8300/bitops1.s
    gas/testsuite/gas/h8300/bitops1h.s
    gas/testsuite/gas/h8300/bitops1s.s
    gas/testsuite/gas/h8300/bitops2.s
    gas/testsuite/gas/h8300/bitops2h.s
    gas/testsuite/gas/h8300/bitops2s.s
    gas/testsuite/gas/h8300/bitops3.s
    gas/testsuite/gas/h8300/bitops3h.s
    gas/testsuite/gas/h8300/bitops3s.s
    gas/testsuite/gas/h8300/bitops4.s
    gas/testsuite/gas/h8300/bitops4h.s
    gas/testsuite/gas/h8300/bitops4s.s
    gas/testsuite/gas/h8300/branch.s
    gas/testsuite/gas/h8300/branchh.s
    gas/testsuite/gas/h8300/branchs.s
    gas/testsuite/gas/h8300/cbranch.s
    gas/testsuite/gas/h8300/cbranchh.s
    gas/testsuite/gas/h8300/cbranchs.s
    gas/testsuite/gas/h8300/cmpsi2.s
    gas/testsuite/gas/h8300/compare.s
    gas/testsuite/gas/h8300/compareh.s
    gas/testsuite/gas/h8300/compares.s
    gas/testsuite/gas/h8300/decimal.s
    gas/testsuite/gas/h8300/decimalh.s
    gas/testsuite/gas/h8300/decimals.s
    gas/testsuite/gas/h8300/divmul.s
    gas/testsuite/gas/h8300/divmulh.s
    gas/testsuite/gas/h8300/divmuls.s
    gas/testsuite/gas/h8300/extendh.s
    gas/testsuite/gas/h8300/extends.s
    gas/testsuite/gas/h8300/ffxx1.d
    gas/testsuite/gas/h8300/ffxx1.s
    gas/testsuite/gas/h8300/h8300.exp
    gas/testsuite/gas/h8300/incdec.s
    gas/testsuite/gas/h8300/incdech.s
    gas/testsuite/gas/h8300/incdecs.s
    gas/testsuite/gas/h8300/logical.s
    gas/testsuite/gas/h8300/logicalh.s
    gas/testsuite/gas/h8300/logicals.s
    gas/testsuite/gas/h8300/macs.s
    gas/testsuite/gas/h8300/misc.s
    gas/testsuite/gas/h8300/misch.s
    gas/testsuite/gas/h8300/miscs.s
    gas/testsuite/gas/h8300/mov32bug.s
    gas/testsuite/gas/h8300/movb.s
    gas/testsuite/gas/h8300/movbh.s
    gas/testsuite/gas/h8300/movbs.s
    gas/testsuite/gas/h8300/movlh.s
    gas/testsuite/gas/h8300/movls.s
    gas/testsuite/gas/h8300/movw.s
    gas/testsuite/gas/h8300/movwh.s
    gas/testsuite/gas/h8300/movws.s
    gas/testsuite/gas/h8300/multiples.s
    gas/testsuite/gas/h8300/pushpop.s
    gas/testsuite/gas/h8300/pushpoph.s
    gas/testsuite/gas/h8300/pushpops.s
    gas/testsuite/gas/h8300/rotsh.s
    gas/testsuite/gas/h8300/rotshh.s
    gas/testsuite/gas/h8300/rotshs.s
    gas/testsuite/gas/hppa/README
    gas/testsuite/gas/hppa/basic/add.s
    gas/testsuite/gas/hppa/basic/addi.s
    gas/testsuite/gas/hppa/basic/basic.exp
    gas/testsuite/gas/hppa/basic/branch.s
    gas/testsuite/gas/hppa/basic/comclr.s
    gas/testsuite/gas/hppa/basic/copr.s
    gas/testsuite/gas/hppa/basic/coprmem.s
    gas/testsuite/gas/hppa/basic/dcor.s
    gas/testsuite/gas/hppa/basic/deposit.s
    gas/testsuite/gas/hppa/basic/ds.s
    gas/testsuite/gas/hppa/basic/extract.s
    gas/testsuite/gas/hppa/basic/fmem.s
    gas/testsuite/gas/hppa/basic/fmemLRbug.s
    gas/testsuite/gas/hppa/basic/fp_comp.s
    gas/testsuite/gas/hppa/basic/fp_conv.s
    gas/testsuite/gas/hppa/basic/fp_fcmp.s
    gas/testsuite/gas/hppa/basic/fp_misc.s
    gas/testsuite/gas/hppa/basic/imem.s
    gas/testsuite/gas/hppa/basic/immed.s
    gas/testsuite/gas/hppa/basic/logical.s
    gas/testsuite/gas/hppa/basic/purge.s
    gas/testsuite/gas/hppa/basic/sh1add.s
    gas/testsuite/gas/hppa/basic/sh2add.s
    gas/testsuite/gas/hppa/basic/sh3add.s
    gas/testsuite/gas/hppa/basic/shift.s
    gas/testsuite/gas/hppa/basic/special.s
    gas/testsuite/gas/hppa/basic/spop.s
    gas/testsuite/gas/hppa/basic/sub.s
    gas/testsuite/gas/hppa/basic/subi.s
    gas/testsuite/gas/hppa/basic/system.s
    gas/testsuite/gas/hppa/basic/unit.s
    gas/testsuite/gas/hppa/basic/weird.s
    gas/testsuite/gas/hppa/parse/align1.s
    gas/testsuite/gas/hppa/parse/align2.s
    gas/testsuite/gas/hppa/parse/appbug.s
    gas/testsuite/gas/hppa/parse/badfmpyadd.s
    gas/testsuite/gas/hppa/parse/block1.s
    gas/testsuite/gas/hppa/parse/block2.s
    gas/testsuite/gas/hppa/parse/calldatabug.s
    gas/testsuite/gas/hppa/parse/callinfobug.s
    gas/testsuite/gas/hppa/parse/defbug.s
    gas/testsuite/gas/hppa/parse/entrybug.s
    gas/testsuite/gas/hppa/parse/exportbug.s
    gas/testsuite/gas/hppa/parse/exprbug.s
    gas/testsuite/gas/hppa/parse/fixup7bug.s
    gas/testsuite/gas/hppa/parse/global.s
    gas/testsuite/gas/hppa/parse/labelbug.s
    gas/testsuite/gas/hppa/parse/linesepbug.s
    gas/testsuite/gas/hppa/parse/lselbug.s
    gas/testsuite/gas/hppa/parse/nosubspace.s
    gas/testsuite/gas/hppa/parse/parse.exp
    gas/testsuite/gas/hppa/parse/procbug.s
    gas/testsuite/gas/hppa/parse/regpopbug.s
    gas/testsuite/gas/hppa/parse/spacebug.s
    gas/testsuite/gas/hppa/parse/ssbug.s
    gas/testsuite/gas/hppa/parse/stdreg.s
    gas/testsuite/gas/hppa/parse/stringer.s
    gas/testsuite/gas/hppa/parse/undefbug.s
    gas/testsuite/gas/hppa/parse/versionbug.s
    gas/testsuite/gas/hppa/parse/xmpyubug.s
    gas/testsuite/gas/hppa/reloc/applybug.s
    gas/testsuite/gas/hppa/reloc/blebug.s
    gas/testsuite/gas/hppa/reloc/blebug2.s
    gas/testsuite/gas/hppa/reloc/blebug3.s
    gas/testsuite/gas/hppa/reloc/exitbug.s
    gas/testsuite/gas/hppa/reloc/fixupbug.s
    gas/testsuite/gas/hppa/reloc/funcrelocbug.s
    gas/testsuite/gas/hppa/reloc/labelopbug.s
    gas/testsuite/gas/hppa/reloc/longcall.s
    gas/testsuite/gas/hppa/reloc/picreloc.s
    gas/testsuite/gas/hppa/reloc/plabelbug.s
    gas/testsuite/gas/hppa/reloc/r_no_reloc.s
    gas/testsuite/gas/hppa/reloc/reduce.s
    gas/testsuite/gas/hppa/reloc/reduce2.s
    gas/testsuite/gas/hppa/reloc/reduce3.s
    gas/testsuite/gas/hppa/reloc/reloc.exp
    gas/testsuite/gas/hppa/reloc/roundmode.s
    gas/testsuite/gas/hppa/reloc/selectorbug.s
    gas/testsuite/gas/hppa/unsorted/align3.s
    gas/testsuite/gas/hppa/unsorted/align4.s
    gas/testsuite/gas/hppa/unsorted/brlenbug.s
    gas/testsuite/gas/hppa/unsorted/common.s
    gas/testsuite/gas/hppa/unsorted/fragbug.s
    gas/testsuite/gas/hppa/unsorted/globalbug.s
    gas/testsuite/gas/hppa/unsorted/importbug.s
    gas/testsuite/gas/hppa/unsorted/labeldiffs.s
    gas/testsuite/gas/hppa/unsorted/locallabel.s
    gas/testsuite/gas/hppa/unsorted/ss_align.s
    gas/testsuite/gas/hppa/unsorted/unsorted.exp
    gas/testsuite/gas/i386/amd.d
    gas/testsuite/gas/i386/amd.s
    gas/testsuite/gas/i386/float.l
    gas/testsuite/gas/i386/float.s
    gas/testsuite/gas/i386/general.l
    gas/testsuite/gas/i386/general.s
    gas/testsuite/gas/i386/i386.exp
    gas/testsuite/gas/i386/inval.l
    gas/testsuite/gas/i386/inval.s
    gas/testsuite/gas/i386/katmai.d
    gas/testsuite/gas/i386/katmai.s
    gas/testsuite/gas/i386/modrm.l
    gas/testsuite/gas/i386/modrm.s
    gas/testsuite/gas/i386/opcode.d
    gas/testsuite/gas/i386/opcode.s
    gas/testsuite/gas/i386/prefix.d
    gas/testsuite/gas/i386/prefix.s
    gas/testsuite/gas/i386/reloc.d
    gas/testsuite/gas/i386/reloc.s
    gas/testsuite/gas/i386/white.l
    gas/testsuite/gas/i386/white.s
    gas/testsuite/gas/ieee-fp/x930509a.exp
    gas/testsuite/gas/ieee-fp/x930509a.s
    gas/testsuite/gas/m32r/allinsn.d
    gas/testsuite/gas/m32r/allinsn.exp
    gas/testsuite/gas/m32r/allinsn.s
    gas/testsuite/gas/m32r/fslot.d
    gas/testsuite/gas/m32r/fslot.s
    gas/testsuite/gas/m32r/high-1.d
    gas/testsuite/gas/m32r/high-1.s
    gas/testsuite/gas/m32r/m32r.exp
    gas/testsuite/gas/m32r/outofrange.s
    gas/testsuite/gas/m32r/relax-1.d
    gas/testsuite/gas/m32r/relax-1.s
    gas/testsuite/gas/m32r/uppercase.d
    gas/testsuite/gas/m32r/uppercase.s
    gas/testsuite/gas/m68k-coff/gas.exp
    gas/testsuite/gas/m68k-coff/p2389.s
    gas/testsuite/gas/m68k-coff/p2389a.s
    gas/testsuite/gas/m68k-coff/p2430.s
    gas/testsuite/gas/m68k-coff/p2430a.s
    gas/testsuite/gas/m68k-coff/t1.s
    gas/testsuite/gas/m68k/all.exp
    gas/testsuite/gas/m68k/bitfield.d
    gas/testsuite/gas/m68k/bitfield.s
    gas/testsuite/gas/m68k/cas.d
    gas/testsuite/gas/m68k/cas.s
    gas/testsuite/gas/m68k/disperr.s
    gas/testsuite/gas/m68k/fmoveml.d
    gas/testsuite/gas/m68k/fmoveml.s
    gas/testsuite/gas/m68k/link.d
    gas/testsuite/gas/m68k/link.s
    gas/testsuite/gas/m68k/op68000.d
    gas/testsuite/gas/m68k/operands.d
    gas/testsuite/gas/m68k/operands.s
    gas/testsuite/gas/m68k/p2410.s
    gas/testsuite/gas/m68k/p2663.s
    gas/testsuite/gas/m68k/pcrel.d
    gas/testsuite/gas/m68k/pcrel.s
    gas/testsuite/gas/m68k/pic1.s
    gas/testsuite/gas/m68k/t2.d
    gas/testsuite/gas/m68k/t2.s
    gas/testsuite/gas/m88k/init.d
    gas/testsuite/gas/m88k/init.s
    gas/testsuite/gas/m88k/m88k.exp
    gas/testsuite/gas/macros/err.s
    gas/testsuite/gas/macros/irp.d
    gas/testsuite/gas/macros/irp.s
    gas/testsuite/gas/macros/macros.exp
    gas/testsuite/gas/macros/rept.d
    gas/testsuite/gas/macros/rept.s
    gas/testsuite/gas/macros/semi.d
    gas/testsuite/gas/macros/semi.s
    gas/testsuite/gas/macros/test1.d
    gas/testsuite/gas/macros/test1.s
    gas/testsuite/gas/macros/test2.d
    gas/testsuite/gas/macros/test2.s
    gas/testsuite/gas/macros/test3.d
    gas/testsuite/gas/macros/test3.s
    gas/testsuite/gas/mcore/allinsn.d
    gas/testsuite/gas/mcore/allinsn.exp
    gas/testsuite/gas/mcore/allinsn.s
    gas/testsuite/gas/mips/abs.d
    gas/testsuite/gas/mips/abs.s
    gas/testsuite/gas/mips/add.d
    gas/testsuite/gas/mips/add.s
    gas/testsuite/gas/mips/and.d
    gas/testsuite/gas/mips/and.s
    gas/testsuite/gas/mips/beq.d
    gas/testsuite/gas/mips/beq.s
    gas/testsuite/gas/mips/bge.d
    gas/testsuite/gas/mips/bge.s
    gas/testsuite/gas/mips/bgeu.d
    gas/testsuite/gas/mips/bgeu.s
    gas/testsuite/gas/mips/blt.d
    gas/testsuite/gas/mips/blt.s
    gas/testsuite/gas/mips/bltu.d
    gas/testsuite/gas/mips/bltu.s
    gas/testsuite/gas/mips/break20.d
    gas/testsuite/gas/mips/break20.s
    gas/testsuite/gas/mips/delay.d
    gas/testsuite/gas/mips/delay.s
    gas/testsuite/gas/mips/div-ilocks.d
    gas/testsuite/gas/mips/div.d
    gas/testsuite/gas/mips/div.s
    gas/testsuite/gas/mips/dli.d
    gas/testsuite/gas/mips/dli.s
    gas/testsuite/gas/mips/elf_e_flags.c
    gas/testsuite/gas/mips/elf_e_flags.s
    gas/testsuite/gas/mips/elf_e_flags1.d
    gas/testsuite/gas/mips/elf_e_flags2.d
    gas/testsuite/gas/mips/elf_e_flags3.d
    gas/testsuite/gas/mips/elf_e_flags4.d
    gas/testsuite/gas/mips/itbl
    gas/testsuite/gas/mips/itbl.s
    gas/testsuite/gas/mips/jal-empic.d
    gas/testsuite/gas/mips/jal-svr4pic.d
    gas/testsuite/gas/mips/jal-svr4pic.s
    gas/testsuite/gas/mips/jal-xgot.d
    gas/testsuite/gas/mips/jal.d
    gas/testsuite/gas/mips/jal.s
    gas/testsuite/gas/mips/la-empic.d
    gas/testsuite/gas/mips/la-empic.s
    gas/testsuite/gas/mips/la-svr4pic.d
    gas/testsuite/gas/mips/la-xgot.d
    gas/testsuite/gas/mips/la.d
    gas/testsuite/gas/mips/la.s
    gas/testsuite/gas/mips/lb-empic.d
    gas/testsuite/gas/mips/lb-pic.s
    gas/testsuite/gas/mips/lb-svr4pic.d
    gas/testsuite/gas/mips/lb-xgot-ilocks.d
    gas/testsuite/gas/mips/lb-xgot.d
    gas/testsuite/gas/mips/lb.d
    gas/testsuite/gas/mips/lb.s
    gas/testsuite/gas/mips/ld-empic.d
    gas/testsuite/gas/mips/ld-ilocks-addr32.d
    gas/testsuite/gas/mips/ld-ilocks.d
    gas/testsuite/gas/mips/ld-pic.s
    gas/testsuite/gas/mips/ld-svr4pic.d
    gas/testsuite/gas/mips/ld-xgot.d
    gas/testsuite/gas/mips/ld.d
    gas/testsuite/gas/mips/ld.s
    gas/testsuite/gas/mips/li.d
    gas/testsuite/gas/mips/li.s
    gas/testsuite/gas/mips/lif-empic.d
    gas/testsuite/gas/mips/lif-svr4pic.d
    gas/testsuite/gas/mips/lif-xgot.d
    gas/testsuite/gas/mips/lifloat.d
    gas/testsuite/gas/mips/lifloat.s
    gas/testsuite/gas/mips/lineno.d
    gas/testsuite/gas/mips/lineno.s
    gas/testsuite/gas/mips/mips.exp
    gas/testsuite/gas/mips/mips16.d
    gas/testsuite/gas/mips/mips16.s
    gas/testsuite/gas/mips/mips4.d
    gas/testsuite/gas/mips/mips4.s
    gas/testsuite/gas/mips/mips4010.d
    gas/testsuite/gas/mips/mips4010.s
    gas/testsuite/gas/mips/mips4100.d
    gas/testsuite/gas/mips/mips4100.s
    gas/testsuite/gas/mips/mips4650.d
    gas/testsuite/gas/mips/mips4650.s
    gas/testsuite/gas/mips/mul-ilocks.d
    gas/testsuite/gas/mips/mul.d
    gas/testsuite/gas/mips/mul.s
    gas/testsuite/gas/mips/nodelay.d
    gas/testsuite/gas/mips/rol.d
    gas/testsuite/gas/mips/rol.s
    gas/testsuite/gas/mips/sb.d
    gas/testsuite/gas/mips/sb.s
    gas/testsuite/gas/mips/sync.d
    gas/testsuite/gas/mips/sync.s
    gas/testsuite/gas/mips/trap20.d
    gas/testsuite/gas/mips/trap20.s
    gas/testsuite/gas/mips/trunc.d
    gas/testsuite/gas/mips/trunc.s
    gas/testsuite/gas/mips/uld.d
    gas/testsuite/gas/mips/uld.s
    gas/testsuite/gas/mips/ulh-empic.d
    gas/testsuite/gas/mips/ulh-pic.s
    gas/testsuite/gas/mips/ulh-svr4pic.d
    gas/testsuite/gas/mips/ulh-xgot.d
    gas/testsuite/gas/mips/ulh.d
    gas/testsuite/gas/mips/ulh.s
    gas/testsuite/gas/mips/ulw.d
    gas/testsuite/gas/mips/ulw.s
    gas/testsuite/gas/mips/usd.d
    gas/testsuite/gas/mips/usd.s
    gas/testsuite/gas/mips/ush.d
    gas/testsuite/gas/mips/ush.s
    gas/testsuite/gas/mips/usw.d
    gas/testsuite/gas/mips/usw.s
    gas/testsuite/gas/mn10200/add.s
    gas/testsuite/gas/mn10200/basic.exp
    gas/testsuite/gas/mn10200/bcc.s
    gas/testsuite/gas/mn10200/bccx.s
    gas/testsuite/gas/mn10200/bit.s
    gas/testsuite/gas/mn10200/cmp.s
    gas/testsuite/gas/mn10200/ext.s
    gas/testsuite/gas/mn10200/logical.s
    gas/testsuite/gas/mn10200/mov1.s
    gas/testsuite/gas/mn10200/mov2.s
    gas/testsuite/gas/mn10200/mov3.s
    gas/testsuite/gas/mn10200/mov4.s
    gas/testsuite/gas/mn10200/movb.s
    gas/testsuite/gas/mn10200/movbu.s
    gas/testsuite/gas/mn10200/movx.s
    gas/testsuite/gas/mn10200/muldiv.s
    gas/testsuite/gas/mn10200/other.s
    gas/testsuite/gas/mn10200/shift.s
    gas/testsuite/gas/mn10200/sub.s
    gas/testsuite/gas/mn10300/add.s
    gas/testsuite/gas/mn10300/basic.exp
    gas/testsuite/gas/mn10300/bcc.s
    gas/testsuite/gas/mn10300/bit.s
    gas/testsuite/gas/mn10300/cmp.s
    gas/testsuite/gas/mn10300/ext.s
    gas/testsuite/gas/mn10300/extend.s
    gas/testsuite/gas/mn10300/logical.s
    gas/testsuite/gas/mn10300/loop.s
    gas/testsuite/gas/mn10300/mov1.s
    gas/testsuite/gas/mn10300/mov2.s
    gas/testsuite/gas/mn10300/mov3.s
    gas/testsuite/gas/mn10300/mov4.s
    gas/testsuite/gas/mn10300/movbu.s
    gas/testsuite/gas/mn10300/movhu.s
    gas/testsuite/gas/mn10300/movm.s
    gas/testsuite/gas/mn10300/muldiv.s
    gas/testsuite/gas/mn10300/other.s
    gas/testsuite/gas/mn10300/shift.s
    gas/testsuite/gas/mn10300/sub.s
    gas/testsuite/gas/mn10300/udf.s
    gas/testsuite/gas/mri/char.d
    gas/testsuite/gas/mri/char.s
    gas/testsuite/gas/mri/comment.d
    gas/testsuite/gas/mri/comment.s
    gas/testsuite/gas/mri/common.d
    gas/testsuite/gas/mri/common.s
    gas/testsuite/gas/mri/constants.d
    gas/testsuite/gas/mri/constants.s
    gas/testsuite/gas/mri/empty.s
    gas/testsuite/gas/mri/equ.d
    gas/testsuite/gas/mri/equ.s
    gas/testsuite/gas/mri/expr.d
    gas/testsuite/gas/mri/expr.s
    gas/testsuite/gas/mri/float.d
    gas/testsuite/gas/mri/float.s
    gas/testsuite/gas/mri/for.d
    gas/testsuite/gas/mri/for.s
    gas/testsuite/gas/mri/if.d
    gas/testsuite/gas/mri/if.s
    gas/testsuite/gas/mri/immconst.d
    gas/testsuite/gas/mri/label.d
    gas/testsuite/gas/mri/label.s
    gas/testsuite/gas/mri/moveml.d
    gas/testsuite/gas/mri/moveml.s
    gas/testsuite/gas/mri/mri.exp
    gas/testsuite/gas/mri/repeat.d
    gas/testsuite/gas/mri/repeat.s
    gas/testsuite/gas/mri/semi.d
    gas/testsuite/gas/mri/semi.s
    gas/testsuite/gas/mri/while.d
    gas/testsuite/gas/mri/while.s
    gas/testsuite/gas/ppc/astest.d
    gas/testsuite/gas/ppc/astest.s
    gas/testsuite/gas/ppc/astest2.d
    gas/testsuite/gas/ppc/astest2.s
    gas/testsuite/gas/ppc/ppc.exp
    gas/testsuite/gas/ppc/simpshft.d
    gas/testsuite/gas/ppc/simpshft.s
    gas/testsuite/gas/sh/basic.exp
    gas/testsuite/gas/sh/fp.s
    gas/testsuite/gas/sparc-solaris/addend.exp
    gas/testsuite/gas/sparc-solaris/addend.s
    gas/testsuite/gas/sparc-solaris/gas.exp
    gas/testsuite/gas/sparc-solaris/sol-cc.s
    gas/testsuite/gas/sparc-solaris/sol-gcc.s
    gas/testsuite/gas/sparc/asi.d
    gas/testsuite/gas/sparc/asi.s
    gas/testsuite/gas/sparc/membar.d
    gas/testsuite/gas/sparc/membar.s
    gas/testsuite/gas/sparc/mism-1.s
    gas/testsuite/gas/sparc/mismatch.exp
    gas/testsuite/gas/sparc/prefetch.d
    gas/testsuite/gas/sparc/prefetch.s
    gas/testsuite/gas/sparc/rdpr.d
    gas/testsuite/gas/sparc/rdpr.s
    gas/testsuite/gas/sparc/reloc64.d
    gas/testsuite/gas/sparc/reloc64.s
    gas/testsuite/gas/sparc/set64.d
    gas/testsuite/gas/sparc/set64.s
    gas/testsuite/gas/sparc/sparc.exp
    gas/testsuite/gas/sparc/splet-2.d
    gas/testsuite/gas/sparc/splet-2.s
    gas/testsuite/gas/sparc/splet.d
    gas/testsuite/gas/sparc/splet.s
    gas/testsuite/gas/sparc/synth.d
    gas/testsuite/gas/sparc/synth.s
    gas/testsuite/gas/sparc/synth64.d
    gas/testsuite/gas/sparc/synth64.s
    gas/testsuite/gas/sparc/wrpr.d
    gas/testsuite/gas/sparc/wrpr.s
    gas/testsuite/gas/sun4/addend.d
    gas/testsuite/gas/sun4/addend.exp
    gas/testsuite/gas/sun4/addend.s
    gas/testsuite/gas/template
    gas/testsuite/gas/tic80/add.d
    gas/testsuite/gas/tic80/add.lst
    gas/testsuite/gas/tic80/add.s
    gas/testsuite/gas/tic80/align.d
    gas/testsuite/gas/tic80/align.lst
    gas/testsuite/gas/tic80/align.s
    gas/testsuite/gas/tic80/bitnum.d
    gas/testsuite/gas/tic80/bitnum.lst
    gas/testsuite/gas/tic80/bitnum.s
    gas/testsuite/gas/tic80/ccode.d
    gas/testsuite/gas/tic80/ccode.lst
    gas/testsuite/gas/tic80/ccode.s
    gas/testsuite/gas/tic80/cregops.d
    gas/testsuite/gas/tic80/cregops.lst
    gas/testsuite/gas/tic80/cregops.s
    gas/testsuite/gas/tic80/endmask.d
    gas/testsuite/gas/tic80/endmask.lst
    gas/testsuite/gas/tic80/endmask.s
    gas/testsuite/gas/tic80/float.d
    gas/testsuite/gas/tic80/float.lst
    gas/testsuite/gas/tic80/float.s
    gas/testsuite/gas/tic80/regops.d
    gas/testsuite/gas/tic80/regops.lst
    gas/testsuite/gas/tic80/regops.s
    gas/testsuite/gas/tic80/regops2.d
    gas/testsuite/gas/tic80/regops2.lst
    gas/testsuite/gas/tic80/regops2.s
    gas/testsuite/gas/tic80/regops3.d
    gas/testsuite/gas/tic80/regops3.lst
    gas/testsuite/gas/tic80/regops3.s
    gas/testsuite/gas/tic80/regops4.d
    gas/testsuite/gas/tic80/regops4.lst
    gas/testsuite/gas/tic80/regops4.s
    gas/testsuite/gas/tic80/relocs1.c
    gas/testsuite/gas/tic80/relocs1.d
    gas/testsuite/gas/tic80/relocs1.lst
    gas/testsuite/gas/tic80/relocs1.s
    gas/testsuite/gas/tic80/relocs1b.d
    gas/testsuite/gas/tic80/relocs2.c
    gas/testsuite/gas/tic80/relocs2.d
    gas/testsuite/gas/tic80/relocs2.lst
    gas/testsuite/gas/tic80/relocs2.s
    gas/testsuite/gas/tic80/relocs2b.d
    gas/testsuite/gas/tic80/tic80.exp
    gas/testsuite/gas/v850/arith.s
    gas/testsuite/gas/v850/basic.exp
    gas/testsuite/gas/v850/bit.s
    gas/testsuite/gas/v850/branch.s
    gas/testsuite/gas/v850/compare.s
    gas/testsuite/gas/v850/fepsw.s
    gas/testsuite/gas/v850/hilo.s
    gas/testsuite/gas/v850/hilo2.s
    gas/testsuite/gas/v850/jumps.s
    gas/testsuite/gas/v850/logical.s
    gas/testsuite/gas/v850/mem.s
    gas/testsuite/gas/v850/misc.s
    gas/testsuite/gas/v850/move.s
    gas/testsuite/gas/v850/range.s
    gas/testsuite/gas/v850/reloc.s
    gas/testsuite/gas/vax/quad.exp
    gas/testsuite/gas/vax/quad.s
    gas/testsuite/gas/vtable/entry0.d
    gas/testsuite/gas/vtable/entry0.s
    gas/testsuite/gas/vtable/entry1.d
    gas/testsuite/gas/vtable/entry1.s
    gas/testsuite/gas/vtable/inherit0.d
    gas/testsuite/gas/vtable/inherit0.s
    gas/testsuite/gas/vtable/inherit1.l
    gas/testsuite/gas/vtable/inherit1.s
    gas/testsuite/gas/vtable/vtable.exp
    gas/testsuite/gasp/INC1.H
    gas/testsuite/gasp/INC2.H
    gas/testsuite/gasp/assign.asm
    gas/testsuite/gasp/assign.err
    gas/testsuite/gasp/assign.out
    gas/testsuite/gasp/condass.asm
    gas/testsuite/gasp/condass.err
    gas/testsuite/gasp/condass.out
    gas/testsuite/gasp/crash.asm
    gas/testsuite/gasp/crash.err
    gas/testsuite/gasp/crash.out
    gas/testsuite/gasp/crash1.asm
    gas/testsuite/gasp/crash1.err
    gas/testsuite/gasp/crash1.out
    gas/testsuite/gasp/crash2.asm
    gas/testsuite/gasp/crash2.err
    gas/testsuite/gasp/crash2.out
    gas/testsuite/gasp/data.asm
    gas/testsuite/gasp/data.err
    gas/testsuite/gasp/data.out
    gas/testsuite/gasp/exp.asm
    gas/testsuite/gasp/exp.err
    gas/testsuite/gasp/exp.out
    gas/testsuite/gasp/gasp.exp
    gas/testsuite/gasp/include.asm
    gas/testsuite/gasp/include.err
    gas/testsuite/gasp/include.out
    gas/testsuite/gasp/listing.asm
    gas/testsuite/gasp/listing.err
    gas/testsuite/gasp/listing.out
    gas/testsuite/gasp/macro.asm
    gas/testsuite/gasp/macro.err
    gas/testsuite/gasp/macro.out
    gas/testsuite/gasp/mdouble.asm
    gas/testsuite/gasp/mdouble.err
    gas/testsuite/gasp/mdouble.out
    gas/testsuite/gasp/mri/embed.asm
    gas/testsuite/gasp/mri/embed.out
    gas/testsuite/gasp/mri/exists.asm
    gas/testsuite/gasp/mri/exists.out
    gas/testsuite/gasp/mri/irp.asm
    gas/testsuite/gasp/mri/irp.out
    gas/testsuite/gasp/mri/irpc.asm
    gas/testsuite/gasp/mri/irpc.out
    gas/testsuite/gasp/mri/macro.asm
    gas/testsuite/gasp/mri/macro.out
    gas/testsuite/gasp/mri/narg.asm
    gas/testsuite/gasp/mri/narg.out
    gas/testsuite/gasp/mri/rept.asm
    gas/testsuite/gasp/mri/rept.out
    gas/testsuite/gasp/pl1.asm
    gas/testsuite/gasp/pl1.err
    gas/testsuite/gasp/pl1.out
    gas/testsuite/gasp/pl2.asm
    gas/testsuite/gasp/pl2.err
    gas/testsuite/gasp/pl2.out
    gas/testsuite/gasp/pl3.asm
    gas/testsuite/gasp/pl3.err
    gas/testsuite/gasp/pl3.out
    gas/testsuite/gasp/pl4.asm
    gas/testsuite/gasp/pl4.err
    gas/testsuite/gasp/pl4.out
    gas/testsuite/gasp/pl5.asm
    gas/testsuite/gasp/pl5.err
    gas/testsuite/gasp/pl5.out
    gas/testsuite/gasp/pl6.asm
    gas/testsuite/gasp/pl6.err
    gas/testsuite/gasp/pl6.out
    gas/testsuite/gasp/pl7.asm
    gas/testsuite/gasp/pl7.err
    gas/testsuite/gasp/pl7.out
    gas/testsuite/gasp/pl8.asm
    gas/testsuite/gasp/pl8.err
    gas/testsuite/gasp/pl8.out
    gas/testsuite/gasp/pr7583.asm
    gas/testsuite/gasp/pr7583.err
    gas/testsuite/gasp/pr7583.out
    gas/testsuite/gasp/reg.asm
    gas/testsuite/gasp/reg.err
    gas/testsuite/gasp/reg.out
    gas/testsuite/gasp/rep.asm
    gas/testsuite/gasp/rep.err
    gas/testsuite/gasp/rep.out
    gas/testsuite/gasp/repeat.asm
    gas/testsuite/gasp/repeat.err
    gas/testsuite/gasp/repeat.out
    gas/testsuite/gasp/reperr.asm
    gas/testsuite/gasp/reperr.err
    gas/testsuite/gasp/reperr.out
    gas/testsuite/gasp/reperr1.asm
    gas/testsuite/gasp/reperr1.err
    gas/testsuite/gasp/reperr1.out
    gas/testsuite/gasp/reperr2.asm
    gas/testsuite/gasp/reperr2.err
    gas/testsuite/gasp/reperr2.out
    gas/testsuite/gasp/reperr3.asm
    gas/testsuite/gasp/reperr3.err
    gas/testsuite/gasp/reperr3.out
    gas/testsuite/gasp/sdata.asm
    gas/testsuite/gasp/sdata.err
    gas/testsuite/gasp/sdata.out
    gas/testsuite/gasp/sfunc.asm
    gas/testsuite/gasp/sfunc.err
    gas/testsuite/gasp/sfunc.out
    gas/testsuite/gasp/t1.asm
    gas/testsuite/gasp/t1.err
    gas/testsuite/gasp/t1.out
    gas/testsuite/gasp/t2.asm
    gas/testsuite/gasp/t2.err
    gas/testsuite/gasp/t2.out
    gas/testsuite/gasp/t3.asm
    gas/testsuite/gasp/t3.err
    gas/testsuite/gasp/t3.out
    gas/testsuite/gasp/while.asm
    gas/testsuite/gasp/while.err
    gas/testsuite/gasp/while.out
    gas/testsuite/lib/doboth
    gas/testsuite/lib/doobjcmp
    gas/testsuite/lib/dostriptest
    gas/testsuite/lib/dotest
    gas/testsuite/lib/dounsreloc
    gas/testsuite/lib/dounssym
    gas/testsuite/lib/gas-defs.exp
    gas/testsuite/lib/gas-dg.exp
    gas/testsuite/lib/run
    gas/vmsconf.sh
    gas/write.c
    gas/write.h
    gdb/c-exp.tab.c
    gdb/config/i386/windows.mh
    gdb/doc/GDBvn.texi
    gdb/f-exp.tab.c
    gdb/jv-exp.tab.c
    gdb/m2-exp.tab.c
    gdb/testsuite/gdb.base/README
    gdb/testsuite/gdb.base/crossload.exp
    gdb/testsuite/gdb.base/i486-elf.u
    gdb/testsuite/gdb.base/i860-elf.u
    gdb/testsuite/gdb.base/m68k-aout.u
    gdb/testsuite/gdb.base/m68k-aout2.u
    gdb/testsuite/gdb.base/m68k-elf.u
    gdb/testsuite/gdb.base/mips-ecoff.u
    gdb/testsuite/gdb.base/sparc-aout.u
    gdb/testsuite/gdb.base/sparc-elf.u
    gdb/tui/Makefile
    gdb/windows-nat.c
    gprof/.gdbinit
    gprof/ChangeLog
    gprof/Makefile.am
    gprof/Makefile.in
    gprof/NOTES
    gprof/TEST
    gprof/TODO
    gprof/aclocal.m4
    gprof/alpha.c
    gprof/basic_blocks.c
    gprof/basic_blocks.h
    gprof/bb_exit_func.c
    gprof/bbconv.pl
    gprof/bsd_callg_bl.m
    gprof/call_graph.c
    gprof/call_graph.h
    gprof/cg_arcs.c
    gprof/cg_arcs.h
    gprof/cg_dfn.c
    gprof/cg_dfn.h
    gprof/cg_print.c
    gprof/cg_print.h
    gprof/configure
    gprof/configure.bat
    gprof/configure.in
    gprof/corefile.c
    gprof/corefile.h
    gprof/flat_bl.m
    gprof/fsf_callg_bl.m
    gprof/gconfig.in
    gprof/gen-c-prog.awk
    gprof/gmon.h
    gprof/gmon_io.c
    gprof/gmon_io.h
    gprof/gmon_out.h
    gprof/gprof.1
    gprof/gprof.c
    gprof/gprof.h
    gprof/gprof.texi
    gprof/hertz.c
    gprof/hertz.h
    gprof/hist.c
    gprof/hist.h
    gprof/i386.c
    gprof/po/Make-in
    gprof/po/POTFILES.in
    gprof/po/gprof.pot
    gprof/search_list.c
    gprof/search_list.h
    gprof/source.c
    gprof/source.h
    gprof/sparc.c
    gprof/stamp-h.in
    gprof/sym_ids.c
    gprof/sym_ids.h
    gprof/symtab.c
    gprof/symtab.h
    gprof/tahoe.c
    gprof/utils.c
    gprof/utils.h
    gprof/vax.c
    include/COPYING
    include/ChangeLog
    include/ansidecl.h
    include/aout/ChangeLog
    include/aout/adobe.h
    include/aout/aout64.h
    include/aout/ar.h
    include/aout/dynix3.h
    include/aout/encap.h
    include/aout/host.h
    include/aout/hp.h
    include/aout/hp300hpux.h
    include/aout/hppa.h
    include/aout/ranlib.h
    include/aout/reloc.h
    include/aout/stab.def
    include/aout/stab_gnu.h
    include/aout/sun4.h
    include/bfdlink.h
    include/bout.h
    include/callback.h
    include/coff/ChangeLog
    include/coff/a29k.h
    include/coff/alpha.h
    include/coff/apollo.h
    include/coff/arm.h
    include/coff/aux-coff.h
    include/coff/ecoff.h
    include/coff/go32exe.h
    include/coff/h8300.h
    include/coff/h8500.h
    include/coff/i386.h
    include/coff/i860.h
    include/coff/i960.h
    include/coff/internal.h
    include/coff/m68k.h
    include/coff/m88k.h
    include/coff/mcore.h
    include/coff/mips.h
    include/coff/pe.h
    include/coff/powerpc.h
    include/coff/rs6000.h
    include/coff/sh.h
    include/coff/sparc.h
    include/coff/sym.h
    include/coff/symconst.h
    include/coff/tic30.h
    include/coff/tic80.h
    include/coff/w65.h
    include/coff/we32k.h
    include/coff/z8k.h
    include/demangle.h
    include/dis-asm.h
    include/elf/ChangeLog
    include/elf/alpha.h
    include/elf/arc.h
    include/elf/arm-oabi.h
    include/elf/arm.h
    include/elf/common.h
    include/elf/d10v.h
    include/elf/d30v.h
    include/elf/dwarf.h
    include/elf/dwarf2.h
    include/elf/external.h
    include/elf/fr30.h
    include/elf/hppa.h
    include/elf/i386.h
    include/elf/i960.h
    include/elf/internal.h
    include/elf/m32r.h
    include/elf/m68k.h
    include/elf/mcore.h
    include/elf/mips.h
    include/elf/mn10200.h
    include/elf/mn10300.h
    include/elf/ppc.h
    include/elf/reloc-macros.h
    include/elf/sh.h
    include/elf/sparc.h
    include/elf/v850.h
    include/floatformat.h
    include/fnmatch.h
    include/fopen-bin.h
    include/fopen-same.h
    include/fopen-vms.h
    include/gdbm.h
    include/getopt.h
    include/hp-symtab.h
    include/ieee.h
    include/libiberty.h
    include/mpw/ChangeLog
    include/mpw/README
    include/mpw/dir.h
    include/mpw/dirent.h
    include/mpw/fcntl.h
    include/mpw/grp.h
    include/mpw/mpw.h
    include/mpw/pwd.h
    include/mpw/spin.h
    include/mpw/stat.h
    include/mpw/sys/file.h
    include/mpw/sys/param.h
    include/mpw/sys/resource.h
    include/mpw/sys/stat.h
    include/mpw/sys/time.h
    include/mpw/sys/types.h
    include/mpw/utime.h
    include/mpw/varargs.h
    include/nlm/ChangeLog
    include/nlm/alpha-ext.h
    include/nlm/common.h
    include/nlm/external.h
    include/nlm/i386-ext.h
    include/nlm/internal.h
    include/nlm/ppc-ext.h
    include/nlm/sparc32-ext.h
    include/oasys.h
    include/objalloc.h
    include/obstack.h
    include/opcode/ChangeLog
    include/opcode/a29k.h
    include/opcode/alpha.h
    include/opcode/arc.h
    include/opcode/arm.h
    include/opcode/cgen.h
    include/opcode/convex.h
    include/opcode/d10v.h
    include/opcode/d30v.h
    include/opcode/h8300.h
    include/opcode/hppa.h
    include/opcode/i386.h
    include/opcode/i860.h
    include/opcode/i960.h
    include/opcode/m68k.h
    include/opcode/m88k.h
    include/opcode/mips.h
    include/opcode/mn10200.h
    include/opcode/mn10300.h
    include/opcode/np1.h
    include/opcode/ns32k.h
    include/opcode/pn.h
    include/opcode/ppc.h
    include/opcode/pyr.h
    include/opcode/sparc.h
    include/opcode/tahoe.h
    include/opcode/tic30.h
    include/opcode/tic80.h
    include/opcode/v850.h
    include/opcode/vax.h
    include/os9k.h
    include/progress.h
    include/regs/ChangeLog
    include/remote-sim.h
    include/splay-tree.h
    include/symcat.h
    include/wait.h
    install-sh
    intl/ChangeLog
    intl/Makefile.in
    intl/acconfig.h
    intl/aclocal.m4
    intl/bindtextdom.c
    intl/cat-compat.c
    intl/config.in
    intl/configure
    intl/configure.in
    intl/dcgettext.c
    intl/dgettext.c
    intl/explodename.c
    intl/finddomain.c
    intl/gettext.c
    intl/gettext.h
    intl/gettextP.h
    intl/hash-string.h
    intl/intl-compat.c
    intl/intlh.inst.in
    intl/l10nflist.c
    intl/libgettext.h
    intl/libintl.glibc
    intl/linux-msg.sed
    intl/loadinfo.h
    intl/loadmsgcat.c
    intl/localealias.c
    intl/po2tbl.sed.in
    intl/textdomain.c
    intl/xopen-msg.sed
    ld/ChangeLog
    ld/Makefile.am
    ld/Makefile.in
    ld/NEWS
    ld/README
    ld/TODO
    ld/acinclude.m4
    ld/aclocal.m4
    ld/config.in
    ld/configure
    ld/configure.bat
    ld/configure.host
    ld/configure.in
    ld/configure.tgt
    ld/deffile.h
    ld/deffilep.y
    ld/dep-in.sed
    ld/emulparams/README
    ld/emulparams/a29k.sh
    ld/emulparams/aixppc.sh
    ld/emulparams/aixrs6.sh
    ld/emulparams/alpha.sh
    ld/emulparams/arcelf.sh
    ld/emulparams/arm_epoc_pe.sh
    ld/emulparams/armaoutb.sh
    ld/emulparams/armaoutl.sh
    ld/emulparams/armcoff.sh
    ld/emulparams/armelf.sh
    ld/emulparams/armelf_linux.sh
    ld/emulparams/armelf_linux26.sh
    ld/emulparams/armelf_oabi.sh
    ld/emulparams/armpe.sh
    ld/emulparams/coff_sparc.sh
    ld/emulparams/d10velf.sh
    ld/emulparams/d30v_e.sh
    ld/emulparams/d30v_o.sh
    ld/emulparams/d30velf.sh
    ld/emulparams/delta68.sh
    ld/emulparams/ebmon29k.sh
    ld/emulparams/elf32_i960.sh
    ld/emulparams/elf32_sparc.sh
    ld/emulparams/elf32b4300.sh
    ld/emulparams/elf32bmip.sh
    ld/emulparams/elf32bsmip.sh
    ld/emulparams/elf32ebmip.sh
    ld/emulparams/elf32elmip.sh
    ld/emulparams/elf32fr30.sh
    ld/emulparams/elf32l4300.sh
    ld/emulparams/elf32lmip.sh
    ld/emulparams/elf32lppc.sh
    ld/emulparams/elf32lsmip.sh
    ld/emulparams/elf32mcore.sh
    ld/emulparams/elf32ppc.sh
    ld/emulparams/elf32ppclinux.sh
    ld/emulparams/elf64_sparc.sh
    ld/emulparams/elf64alpha.sh
    ld/emulparams/elf_i386.sh
    ld/emulparams/elf_i386_be.sh
    ld/emulparams/gld960.sh
    ld/emulparams/gld960coff.sh
    ld/emulparams/go32.sh
    ld/emulparams/h8300.sh
    ld/emulparams/h8300h.sh
    ld/emulparams/h8300s.sh
    ld/emulparams/h8500.sh
    ld/emulparams/h8500b.sh
    ld/emulparams/h8500c.sh
    ld/emulparams/h8500m.sh
    ld/emulparams/h8500s.sh
    ld/emulparams/hp300bsd.sh
    ld/emulparams/hp3hpux.sh
    ld/emulparams/hppaelf.sh
    ld/emulparams/i386aout.sh
    ld/emulparams/i386beos.sh
    ld/emulparams/i386bsd.sh
    ld/emulparams/i386coff.sh
    ld/emulparams/i386go32.sh
    ld/emulparams/i386linux.sh
    ld/emulparams/i386lynx.sh
    ld/emulparams/i386mach.sh
    ld/emulparams/i386moss.sh
    ld/emulparams/i386msdos.sh
    ld/emulparams/i386nbsd.sh
    ld/emulparams/i386nw.sh
    ld/emulparams/i386pe.sh
    ld/emulparams/lnk960.sh
    ld/emulparams/m32relf.sh
    ld/emulparams/m68k4knbsd.sh
    ld/emulparams/m68kaout.sh
    ld/emulparams/m68kaux.sh
    ld/emulparams/m68kcoff.sh
    ld/emulparams/m68kelf.sh
    ld/emulparams/m68klinux.sh
    ld/emulparams/m68klynx.sh
    ld/emulparams/m68knbsd.sh
    ld/emulparams/m68kpsos.sh
    ld/emulparams/m88kbcs.sh
    ld/emulparams/mcorepe.sh
    ld/emulparams/mipsbig.sh
    ld/emulparams/mipsbsd.sh
    ld/emulparams/mipsidt.sh
    ld/emulparams/mipsidtl.sh
    ld/emulparams/mipslit.sh
    ld/emulparams/mipslnews.sh
    ld/emulparams/mn10200.sh
    ld/emulparams/mn10300.sh
    ld/emulparams/news.sh
    ld/emulparams/ns32knbsd.sh
    ld/emulparams/pc532macha.sh
    ld/emulparams/ppcmacos.sh
    ld/emulparams/ppcnw.sh
    ld/emulparams/ppcpe.sh
    ld/emulparams/riscix.sh
    ld/emulparams/sa29200.sh
    ld/emulparams/sh.sh
    ld/emulparams/shelf.sh
    ld/emulparams/shl.sh
    ld/emulparams/shlelf.sh
    ld/emulparams/sparcaout.sh
    ld/emulparams/sparclinux.sh
    ld/emulparams/sparclynx.sh
    ld/emulparams/sparcnbsd.sh
    ld/emulparams/st2000.sh
    ld/emulparams/sun3.sh
    ld/emulparams/sun4.sh
    ld/emulparams/tic30aout.sh
    ld/emulparams/tic30coff.sh
    ld/emulparams/tic80coff.sh
    ld/emulparams/v850.sh
    ld/emulparams/vanilla.sh
    ld/emulparams/vax.sh
    ld/emulparams/vsta.sh
    ld/emulparams/w65.sh
    ld/emulparams/z8001.sh
    ld/emulparams/z8002.sh
    ld/emultempl/README
    ld/emultempl/aix.em
    ld/emultempl/armcoff.em
    ld/emultempl/armelf.em
    ld/emultempl/armelf_oabi.em
    ld/emultempl/beos.em
    ld/emultempl/elf32.em
    ld/emultempl/generic.em
    ld/emultempl/gld960.em
    ld/emultempl/gld960c.em
    ld/emultempl/hppaelf.em
    ld/emultempl/linux.em
    ld/emultempl/lnk960.em
    ld/emultempl/mipsecoff.em
    ld/emultempl/pe.em
    ld/emultempl/stringify.sed
    ld/emultempl/sunos.em
    ld/emultempl/vanilla.em
    ld/gen-doc.texi
    ld/genscripts.sh
    ld/h8-doc.texi
    ld/ld.1
    ld/ld.h
    ld/ld.texinfo
    ld/ldcref.c
    ld/ldctor.c
    ld/ldctor.h
    ld/ldemul.c
    ld/ldemul.h
    ld/ldexp.c
    ld/ldexp.h
    ld/ldfile.c
    ld/ldfile.h
    ld/ldgram.y
    ld/ldint.texinfo
    ld/ldlang.c
    ld/ldlang.h
    ld/ldlex.h
    ld/ldlex.l
    ld/ldmain.c
    ld/ldmain.h
    ld/ldmisc.c
    ld/ldmisc.h
    ld/ldver.c
    ld/ldver.h
    ld/ldwrite.c
    ld/ldwrite.h
    ld/lexsup.c
    ld/mac-ld.r
    ld/mpw-config.in
    ld/mpw-elfmips.c
    ld/mpw-eppcmac.c
    ld/mpw-esh.c
    ld/mpw-idtmips.c
    ld/mpw-make.sed
    ld/mri.c
    ld/mri.h
    ld/pe-dll.c
    ld/po/Make-in
    ld/po/POTFILES.in
    ld/po/ld.pot
    ld/scripttempl/README
    ld/scripttempl/a29k.sc
    ld/scripttempl/aix.sc
    ld/scripttempl/alpha.sc
    ld/scripttempl/aout.sc
    ld/scripttempl/armaout.sc
    ld/scripttempl/armcoff.sc
    ld/scripttempl/delta68.sc
    ld/scripttempl/ebmon29k.sc
    ld/scripttempl/elf.sc
    ld/scripttempl/elfd10v.sc
    ld/scripttempl/elfd30v.sc
    ld/scripttempl/elfppc.sc
    ld/scripttempl/go32coff.sc
    ld/scripttempl/h8300.sc
    ld/scripttempl/h8300h.sc
    ld/scripttempl/h8300s.sc
    ld/scripttempl/h8500.sc
    ld/scripttempl/h8500b.sc
    ld/scripttempl/h8500c.sc
    ld/scripttempl/h8500m.sc
    ld/scripttempl/h8500s.sc
    ld/scripttempl/hppaelf.sc
    ld/scripttempl/i386beos.sc
    ld/scripttempl/i386coff.sc
    ld/scripttempl/i386go32.sc
    ld/scripttempl/i386lynx.sc
    ld/scripttempl/i386msdos.sc
    ld/scripttempl/i960.sc
    ld/scripttempl/m68kaux.sc
    ld/scripttempl/m68kcoff.sc
    ld/scripttempl/m68klynx.sc
    ld/scripttempl/m88kbcs.sc
    ld/scripttempl/mcorepe.sc
    ld/scripttempl/mips.sc
    ld/scripttempl/mipsbsd.sc
    ld/scripttempl/nw.sc
    ld/scripttempl/pe.sc
    ld/scripttempl/ppcpe.sc
    ld/scripttempl/psos.sc
    ld/scripttempl/riscix.sc
    ld/scripttempl/sa29200.sc
    ld/scripttempl/sh.sc
    ld/scripttempl/sparccoff.sc
    ld/scripttempl/sparclynx.sc
    ld/scripttempl/st2000.sc
    ld/scripttempl/tic30aout.sc
    ld/scripttempl/tic30coff.sc
    ld/scripttempl/tic80coff.sc
    ld/scripttempl/v850.sc
    ld/scripttempl/vanilla.sc
    ld/scripttempl/w65.sc
    ld/scripttempl/z8000.sc
    ld/stamp-h.in
    ld/sysdep.h
    ld/testsuite/ChangeLog
    ld/testsuite/config/default.exp
    ld/testsuite/ld-bootstrap/bootstrap.exp
    ld/testsuite/ld-cdtest/cdtest-bar.cc
    ld/testsuite/ld-cdtest/cdtest-foo.cc
    ld/testsuite/ld-cdtest/cdtest-foo.h
    ld/testsuite/ld-cdtest/cdtest-main.cc
    ld/testsuite/ld-cdtest/cdtest.dat
    ld/testsuite/ld-cdtest/cdtest.exp
    ld/testsuite/ld-checks/asm.s
    ld/testsuite/ld-checks/checks.exp
    ld/testsuite/ld-checks/script
    ld/testsuite/ld-elfvers/vers.exp
    ld/testsuite/ld-elfvers/vers1.c
    ld/testsuite/ld-elfvers/vers1.dsym
    ld/testsuite/ld-elfvers/vers1.map
    ld/testsuite/ld-elfvers/vers1.sym
    ld/testsuite/ld-elfvers/vers1.ver
    ld/testsuite/ld-elfvers/vers13.asym
    ld/testsuite/ld-elfvers/vers15.c
    ld/testsuite/ld-elfvers/vers15.dsym
    ld/testsuite/ld-elfvers/vers15.sym
    ld/testsuite/ld-elfvers/vers15.ver
    ld/testsuite/ld-elfvers/vers16.c
    ld/testsuite/ld-elfvers/vers16.dsym
    ld/testsuite/ld-elfvers/vers16.map
    ld/testsuite/ld-elfvers/vers16a.c
    ld/testsuite/ld-elfvers/vers16a.dsym
    ld/testsuite/ld-elfvers/vers16a.ver
    ld/testsuite/ld-elfvers/vers2.c
    ld/testsuite/ld-elfvers/vers2.dsym
    ld/testsuite/ld-elfvers/vers2.map
    ld/testsuite/ld-elfvers/vers2.ver
    ld/testsuite/ld-elfvers/vers3.c
    ld/testsuite/ld-elfvers/vers3.dsym
    ld/testsuite/ld-elfvers/vers3.ver
    ld/testsuite/ld-elfvers/vers4.c
    ld/testsuite/ld-elfvers/vers4.sym
    ld/testsuite/ld-elfvers/vers4a.dsym
    ld/testsuite/ld-elfvers/vers4a.sym
    ld/testsuite/ld-elfvers/vers4a.ver
    ld/testsuite/ld-elfvers/vers5.c
    ld/testsuite/ld-elfvers/vers6.c
    ld/testsuite/ld-elfvers/vers6.dsym
    ld/testsuite/ld-elfvers/vers6.sym
    ld/testsuite/ld-elfvers/vers6.ver
    ld/testsuite/ld-elfvers/vers7.c
    ld/testsuite/ld-elfvers/vers7.map
    ld/testsuite/ld-elfvers/vers7a.c
    ld/testsuite/ld-elfvers/vers7a.dsym
    ld/testsuite/ld-elfvers/vers7a.sym
    ld/testsuite/ld-elfvers/vers7a.ver
    ld/testsuite/ld-elfvers/vers8.c
    ld/testsuite/ld-elfvers/vers8.map
    ld/testsuite/ld-elfvers/vers8.ver
    ld/testsuite/ld-elfvers/vers9.c
    ld/testsuite/ld-elfvers/vers9.dsym
    ld/testsuite/ld-elfvers/vers9.sym
    ld/testsuite/ld-elfvers/vers9.ver
    ld/testsuite/ld-empic/empic.exp
    ld/testsuite/ld-empic/relax.t
    ld/testsuite/ld-empic/relax1.c
    ld/testsuite/ld-empic/relax2.c
    ld/testsuite/ld-empic/relax3.c
    ld/testsuite/ld-empic/relax4.c
    ld/testsuite/ld-empic/run.c
    ld/testsuite/ld-empic/runtest1.c
    ld/testsuite/ld-empic/runtest2.c
    ld/testsuite/ld-empic/runtesti.s
    ld/testsuite/ld-scripts/cross1.c
    ld/testsuite/ld-scripts/cross1.t
    ld/testsuite/ld-scripts/cross2.c
    ld/testsuite/ld-scripts/cross2.t
    ld/testsuite/ld-scripts/cross3.c
    ld/testsuite/ld-scripts/crossref.exp
    ld/testsuite/ld-scripts/defined.exp
    ld/testsuite/ld-scripts/defined.s
    ld/testsuite/ld-scripts/defined.t
    ld/testsuite/ld-scripts/phdrs.exp
    ld/testsuite/ld-scripts/phdrs.s
    ld/testsuite/ld-scripts/phdrs.t
    ld/testsuite/ld-scripts/script.exp
    ld/testsuite/ld-scripts/script.s
    ld/testsuite/ld-scripts/script.t
    ld/testsuite/ld-scripts/scriptm.t
    ld/testsuite/ld-scripts/sizeof.exp
    ld/testsuite/ld-scripts/sizeof.s
    ld/testsuite/ld-scripts/sizeof.t
    ld/testsuite/ld-scripts/weak.exp
    ld/testsuite/ld-scripts/weak.t
    ld/testsuite/ld-scripts/weak1.s
    ld/testsuite/ld-scripts/weak2.s
    ld/testsuite/ld-selective/1.c
    ld/testsuite/ld-selective/2.c
    ld/testsuite/ld-selective/3.cc
    ld/testsuite/ld-selective/4.cc
    ld/testsuite/ld-selective/5.cc
    ld/testsuite/ld-selective/selective.exp
    ld/testsuite/ld-sh/sh.exp
    ld/testsuite/ld-sh/sh1.s
    ld/testsuite/ld-sh/sh2.c
    ld/testsuite/ld-sh/start.s
    ld/testsuite/ld-shared/elf-offset.ld
    ld/testsuite/ld-shared/main.c
    ld/testsuite/ld-shared/sh1.c
    ld/testsuite/ld-shared/sh2.c
    ld/testsuite/ld-shared/shared.dat
    ld/testsuite/ld-shared/shared.exp
    ld/testsuite/ld-shared/sun4.dat
    ld/testsuite/ld-shared/xcoff.dat
    ld/testsuite/ld-srec/sr1.c
    ld/testsuite/ld-srec/sr2.c
    ld/testsuite/ld-srec/sr3.cc
    ld/testsuite/ld-srec/srec.exp
    ld/testsuite/ld-undefined/undefined.c
    ld/testsuite/ld-undefined/undefined.exp
    ld/testsuite/ld-versados/t1-1.ro
    ld/testsuite/ld-versados/t1-2.ro
    ld/testsuite/ld-versados/t1.ld
    ld/testsuite/ld-versados/t1.ook
    ld/testsuite/ld-versados/t2-1.ro
    ld/testsuite/ld-versados/t2-2.ro
    ld/testsuite/ld-versados/t2-3.ro
    ld/testsuite/ld-versados/t2.ld
    ld/testsuite/ld-versados/t2.ook
    ld/testsuite/ld-versados/versados.exp
    ld/testsuite/lib/ld-lib.exp
    libiberty/COPYING.LIB
    libiberty/ChangeLog
    libiberty/Makefile.in
    libiberty/README
    libiberty/acconfig.h
    libiberty/alloca-conf.h
    libiberty/alloca.c
    libiberty/argv.c
    libiberty/asprintf.c
    libiberty/atexit.c
    libiberty/basename.c
    libiberty/bcmp.c
    libiberty/bcopy.c
    libiberty/bzero.c
    libiberty/calloc.c
    libiberty/choose-temp.c
    libiberty/clock.c
    libiberty/concat.c
    libiberty/config.h-vms
    libiberty/config.in
    libiberty/config.table
    libiberty/config/mh-aix
    libiberty/config/mh-beos
    libiberty/config/mh-cxux7
    libiberty/config/mh-fbsd21
    libiberty/config/mh-windows
    libiberty/configure
    libiberty/configure.bat
    libiberty/configure.in
    libiberty/copysign.c
    libiberty/cplus-dem.c
    libiberty/fdmatch.c
    libiberty/floatformat.c
    libiberty/fnmatch.c
    libiberty/getcwd.c
    libiberty/getopt.c
    libiberty/getopt1.c
    libiberty/getpagesize.c
    libiberty/getruntime.c
    libiberty/hex.c
    libiberty/index.c
    libiberty/insque.c
    libiberty/makefile.dos
    libiberty/makefile.vms
    libiberty/memchr.c
    libiberty/memcmp.c
    libiberty/memcpy.c
    libiberty/memmove.c
    libiberty/memset.c
    libiberty/mkstemps.c
    libiberty/mpw-config.in
    libiberty/mpw-make.sed
    libiberty/mpw.c
    libiberty/msdos.c
    libiberty/objalloc.c
    libiberty/obstack.c
    libiberty/pexecute.c
    libiberty/random.c
    libiberty/rename.c
    libiberty/rindex.c
    libiberty/sigsetmask.c
    libiberty/spaces.c
    libiberty/splay-tree.c
    libiberty/strcasecmp.c
    libiberty/strchr.c
    libiberty/strdup.c
    libiberty/strerror.c
    libiberty/strncasecmp.c
    libiberty/strrchr.c
    libiberty/strsignal.c
    libiberty/strstr.c
    libiberty/strtod.c
    libiberty/strtol.c
    libiberty/strtoul.c
    libiberty/tmpnam.c
    libiberty/vasprintf.c
    libiberty/vfork.c
    libiberty/vfprintf.c
    libiberty/vmsbuild.com
    libiberty/vprintf.c
    libiberty/vsprintf.c
    libiberty/waitpid.c
    libiberty/xatexit.c
    libiberty/xexit.c
    libiberty/xmalloc.c
    libiberty/xstrdup.c
    libiberty/xstrerror.c
    ltconfig
    ltmain.sh
    makeall.bat
    makefile.vms
    missing
    mkinstalldirs
    move-if-change
    mpw-README
    mpw-build.in
    mpw-config.in
    mpw-configure
    mpw-install
    opcodes/ChangeLog
    opcodes/Makefile.am
    opcodes/Makefile.in
    opcodes/a29k-dis.c
    opcodes/acinclude.m4
    opcodes/aclocal.m4
    opcodes/alpha-dis.c
    opcodes/alpha-opc.c
    opcodes/arc-dis.c
    opcodes/arc-opc.c
    opcodes/arm-dis.c
    opcodes/arm-opc.h
    opcodes/cgen-asm.c
    opcodes/cgen-dis.c
    opcodes/cgen-opc.c
    opcodes/config.in
    opcodes/configure
    opcodes/configure.bat
    opcodes/configure.in
    opcodes/d10v-dis.c
    opcodes/d10v-opc.c
    opcodes/d30v-dis.c
    opcodes/d30v-opc.c
    opcodes/dep-in.sed
    opcodes/dis-buf.c
    opcodes/disassemble.c
    opcodes/fr30-asm.c
    opcodes/fr30-desc.c
    opcodes/fr30-desc.h
    opcodes/fr30-dis.c
    opcodes/fr30-ibld.c
    opcodes/fr30-opc.c
    opcodes/fr30-opc.h
    opcodes/h8300-dis.c
    opcodes/h8500-dis.c
    opcodes/h8500-opc.h
    opcodes/hppa-dis.c
    opcodes/i386-dis.c
    opcodes/i960-dis.c
    opcodes/m10200-dis.c
    opcodes/m10200-opc.c
    opcodes/m10300-dis.c
    opcodes/m10300-opc.c
    opcodes/m32r-asm.c
    opcodes/m32r-desc.c
    opcodes/m32r-desc.h
    opcodes/m32r-dis.c
    opcodes/m32r-ibld.c
    opcodes/m32r-opc.c
    opcodes/m32r-opc.h
    opcodes/m32r-opinst.c
    opcodes/m68k-dis.c
    opcodes/m68k-opc.c
    opcodes/m88k-dis.c
    opcodes/makefile.vms
    opcodes/mcore-dis.c
    opcodes/mcore-opc.h
    opcodes/mips-dis.c
    opcodes/mips-opc.c
    opcodes/mips16-opc.c
    opcodes/mpw-config.in
    opcodes/mpw-make.sed
    opcodes/ns32k-dis.c
    opcodes/opintl.h
    opcodes/po/Make-in
    opcodes/po/POTFILES.in
    opcodes/po/opcodes.pot
    opcodes/ppc-dis.c
    opcodes/ppc-opc.c
    opcodes/sh-dis.c
    opcodes/sh-opc.h
    opcodes/sparc-dis.c
    opcodes/sparc-opc.c
    opcodes/stamp-h.in
    opcodes/sysdep.h
    opcodes/tic30-dis.c
    opcodes/tic80-dis.c
    opcodes/tic80-opc.c
    opcodes/v850-dis.c
    opcodes/v850-opc.c
    opcodes/vax-dis.c
    opcodes/w65-dis.c
    opcodes/w65-opc.h
    opcodes/z8k-dis.c
    opcodes/z8k-opc.h
    opcodes/z8kgen.c
    readline/ChangeLog
    setup.com
    symlink-tree
    texinfo/texinfo.tex
    ylwrap
1999-06-28 23:04:33 +00:00
Jason Molenda
74cf13956f import gdb-1999-06-28 snapshot 1999-06-28 23:04:32 +00:00
Jason Molenda
9cd2c67bac These files were removed in the 1999-06-28 snapshot. 1999-06-28 17:11:12 +00:00
Jason Molenda
085dd6e638 import gdb-1999-06-28 snapshot 1999-06-28 16:06:02 +00:00
Mark Mitchell
303f629d61 * elf32-mips.c (MIPS_ELF_SRDATA_SECTION_NAME): New macro.
(MIPS_ELF_OPTIONS_SECTION_NAME): Likewise.
	(MIPS_ELF_STUB_SECTION_NAME): Likewise.
	(_bfd_mips_elf_section_from_shdr): Use them.
	(_bfd_mips_elf_fake_sections): Likewise.  Add .srdata to the list
	of GP-relative sections.
	(_bfd_mips_elf_set_section_contents): Use them.
	(_bfd_mips_elf_section_processing): Share code between .sdata and
	.lit4/.lit8 sections.  Set appropriate flags for .srdata.
	(mips_elf_additional_program_headers): Add handling for
	PT_MIPS_OPTIONS segment on IRIX6.
	(mips_elf_modify_segment_map): Likeiwse.
	(mips_elf_final_link): Set EF_MIPS_CPIC when required by the ABI.
	Include the options sections on IRIX6.  Don't look for GP-relative
	sections by name; use SHF_MIPS_GPREL instead.
	(ELF_DYNAMIC_INTERPRETER): Adjust to use /usr/lib32/libc.so.1 for
	the N32 ABI.
	(mips_elf_create_dynamic_sections): Don't muck about with section
	alignments and such on IRIX6.
	(mips_elf_adjust_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
	(mips_elf_size_dynamic_sections): Likewise. Adjust to handle the
	fact that ELF_DYNAMIC_INTERPRETER is no longer a constant.  Use
	bfd_zalloc rather than bfd_alloc and memset.
	(mips_elf_finish_dynamic_symbol): Use MIPS_ELF_STUB_SECTION_NAME.
	Don't assert the existence of .rld_map on IRIX6.
	(mips_elf_finish_dynamic_sections): Use MIPS_ELF_STUB_SECTION_NAME.
1999-06-27 21:23:34 +00:00
Mark Mitchell
9886bd4365 * elf32-mips.c (mips_elf_adjust_dynindx): Remove.
(mips_elf_size_dynamic_sections): Use _bfd_elf_link_adjust_dynindx
	instead.
1999-06-27 16:11:13 +00:00
Mark Mitchell
c6142e5d05 * elf32-mips.c (mips_elf_swap_msym_in): New function.
(mips_elf_swap_msym_out): New function.
	(mips_elf_create_msym_section): Likewise.
	(MIPS_ELF_MSYM_SECTION_NAME): New macro.
	(_bfd_mips_elf_final_write_processing): Set sh_link for .msym.
	(_bfd_mips_elf_section_from_shdr): Reject an SHT_MIPS_MSYM
	section not named .msym.
	(_bfd_mips_elf_fake_sections): Use MIPS_ELF_MSYM_SECTION_NAME, not
	.msym directly.  Set appropriate attributes for the .msym
	section.
	(mips_elf_link_hash_entry): Add min_dyn_reloc_index field.
	(mips_elf_link_hash_newfunc): Clear it.
	(mips_elf_create_dynamic_sections): Create the .msym section
	on IRIX6.
	(mips_elf_size_dynamic_sections):  Allocate space for the
	.msym section.  Add a DT_MIPS_MSYM entry.
	(mips_elf_finish_dynamic_symbol): Write out a .msym entry for
	the symbol.
	(mips_elf_finish_dynamic_sections): Assign a value for
	DT_MIPS_MSYM.  Add .msym entries for the section symbols as well.
1999-06-27 11:05:15 +00:00
Ian Lance Taylor
264d6861c7 1999-06-27 H.J. Lu <hjl@gnu.org>
* subsegs.c (subseg_text_p): Use 1/0 instead of true/false for
	non BFD_ASSEMBLER case.
1999-06-27 08:29:27 +00:00
Mark Mitchell
a94a7c1c32 * elf32-mips.c (irix_compat_t): New enumeration.
(ABI_N32_P): New macro.
	(IRIX_COMPAT): Likewise.
	(SGI_COMPAT): Implement in terms of IRIX_COMPAT.
	(mips_elf_relocate_section): Fix typo.
1999-06-26 21:17:49 +00:00
Ian Lance Taylor
827c01493e 1999-06-26 Mumit Khan <khan@xraylith.wisc.edu>
* config/obj-coff.c (obj_coff_section): Mark writable sections as
	data.
1999-06-26 19:35:44 +00:00
Ian Lance Taylor
368d086045 fix copyright 1999-06-26 19:33:44 +00:00
Ian Lance Taylor
254f5c45f5 1999-06-26 Mumit Khan <khan@xraylith.wisc.edu>
* peicode.h (coff_swap_scnhdr_out): Mark non readonly BFD sections
	as writable PE sections.
1999-06-26 19:32:54 +00:00
Richard Henderson
a340d27090 David Mosberger <davidm@hpl.hp.com>
* dwarf2dbg.c (dwarf2_gen_line_info): Don't call
        out_end_sequence() when the address decreases due to a new frag.
        (gen_dir_list): Set ls.file[i].dir to j + 1 (not j) because file
        numbering starts with 1.
1999-06-26 16:10:10 +00:00
Richard Henderson
f623be2b68 David Mosberger <davidm@hpl.hp.com>
* dwarf2.c (struct arange): New type.
        (struct comp_unit): Replace LOW and HIGH by member ARANGE.
        (arange_add): New function.
        (decode_line_info): Keep track of address ranges that a compilation
        unit covers.
        (comp_unit_contains_address): Return true if address is contained
        in _any_ of the address ranges associated with a compilation unit.
        (_bfd_dwarf2_find_nearest_line): Call comp_unit_find_nearest_line
        on the first comp_unit that contains the address.
1999-06-26 16:05:58 +00:00
Richard Henderson
69dd2e2d55 David Mosberger <davidm@hpl.hp.com>
* dwarf2.c (struct dwarf2_debug): Add member dwarf_line_buffer.
        (decode_line_info): Add variable STASH and initialize it to point
        to the per-bfd dwarf2_debug info.  Remove static variable
        dwarf_line_buffer and use stash->dwarf_line_buffer in its place.
1999-06-26 15:48:47 +00:00
Ian Lance Taylor
1d7b28df8d * elflink.h (elf_link_output_extsym): It's OK for a -Bsymbolic
shared library to have an undefined symbol.
1999-06-26 09:00:19 +00:00
Ian Lance Taylor
0429ebd010 From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:
* elf32-ppc.c (ppc_elf_relocate_section): Fix last patch.
1999-06-26 08:57:54 +00:00
Jeff Law
f7fc668b8e * hppa.h (pa_opcodes): Add pa2.0 clrbts instruction. 1999-06-25 03:29:45 +00:00
Jeff Law
b65db25218 * hppa.h (pa_opcodes): Add entries for mfia and mtsarcm instructions. 1999-06-25 03:23:12 +00:00
Jeff Law
31bd8f254f ð
* elf-hppa.c (elf_hppa_final_write_processing): New function.
        * elf32-hppa.c: Remove everything related to symbol extension
        sections & records.  Use the common elf_hppa_final_write_processing.
1999-06-24 20:01:44 +00:00
Jeff Law
95cbae0b17 *** empty log message *** 1999-06-24 20:01:43 +00:00
Jeff Law
4517897e01 d
* elf-hppa.c (elf_hppa_final_write_processing): New function.
        * elf32-hppa.c: Remove everything related to symbol extension
        sections & records.  Use the common elf_hppa_final_write_processing.
1999-06-24 20:01:42 +00:00
Mark Mitchell
3dbf70a218 * ldmain.c (main): Initialize link_info.init_function and
link_info.fini_function.
	* lexsup.c (OPTION_INIT): New macro.
	(OPTION_FINI): Likewise.
	(ld_options): Add descriptions for them.
	(parse_args): Handle them.
1999-06-23 11:09:30 +00:00
Mark Mitchell
f0c2e336c8 * elflink.h (size_dynamic_sections): Use user-specified init/fini
functions instead of _init/_fini if requested.
1999-06-23 11:06:57 +00:00
Mark Mitchell
94883c63a8 * bfdlink.h (struct bfd_link_hash_entry): Add init_function and
fini_function.
1999-06-23 11:03:45 +00:00
Nick Clifton
40b10cc76f ooops - omitted from previous delta. 1999-06-23 09:31:57 +00:00
Nick Clifton
16b93d8878 Make the mcore even more paranoid about section switching 1999-06-23 09:27:09 +00:00
Alan Modra
1008451944 P
include/opcode/i386.h: Allow bswapl, arplw, and other dodgy insns.
opcodes/i386-dis.c: Fix a comment
1999-06-23 06:00:14 +00:00
Ian Lance Taylor
83d765b3ed * Makefile.am (dlltool_SOURCES): Add dyn-string.c.
* Makefile.in: Rebuild.
1999-06-22 22:58:06 +00:00
Ian Lance Taylor
2481e6a24f 1999-06-23 Mumit Khan <khan@xraylith.wisc.edu>
* configure.in (HAVE_EXECUTABLE_SUFFIX): Define.
	* dlltool.c (look_for_prog): Use HAVE_EXECUTABLE_SUFFIX.
	* dllwrap.c (look_for_prog): Likewise.
	* resrc.c (look_for_default): Likewise.
	* configure, config.in: Rebuild.
1999-06-22 22:50:22 +00:00
Ian Lance Taylor
03ae5f594e * elf.c (bfd_section_from_shdr): Avoid crashing on a bogus sh_link
field.
1999-06-22 21:25:49 +00:00
Ian Lance Taylor
7b9eea348f * ldlang.c (section_already_linked): Only discard link once
sections if we are building constructors.
1999-06-22 21:13:24 +00:00
Ian Lance Taylor
464e1740d2 From Franz Sirl <Franz.Sirl-kernel@lauterbach.com>:
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Set unused dynindx
	field to 0, not -1.
	(ppc_elf_finish_dynamic_sections): Check for positive section
	dynindx field, rather than comparing against -1.
	(ppc_elf_relocate_section): Only return false if undefined_symbol
	or reloc_overflow fail, not always upon encountering an error.
1999-06-22 21:01:24 +00:00
Ian Lance Taylor
75945f9f4c clarify section dynindx comment 1999-06-22 20:58:43 +00:00
Ian Lance Taylor
bb0cb4db08 Based on patches from Mumit Khan <khan@xraylith.wisc.EDU>:
* configure.in: Define EXECUTABLE_SUFFIX.
	* dlltool.c: Include "dyn-string.h".  Include <stdarg.h> based on
	ANSI_PROTOTYPES, not __STDC__.
	(outfile): Remove.
	(gen_exp_file): Change uses of outfile to use alloca.
	(make_one_lib_file, make_head, make_tail): Likewise.
	(gen_lib_file): Likewise.
	(look_for_prog): New static function.
	(deduce_name): Rewrite to use look_for_prog.
	(mcore_elf_gen_out_file): Use dyn_string_t rather than outfile.
	* dllwrap.c: Don't include <stdio.h>, <errno.h>, <string.h>,
	<stdlib.h>, or <unistd.h>.  Include <sys/stat.h> and either
	<stdarg.h> or <varargs.h>.
	(driver_name): Initialize to NULL, not "gcc".
	(dlltool_name): Initialize to NULL, not "dlltool".
	(display, inform, look_for_prog, deduce_name): New static
	functions.
	(usage): Mention -mno-cygwin.
	(OPTION_MNO_CYGWIN): Define.
	(main): Handle -mno-cygwin.  Deduce driver_name and dlltool_name.
	* resrc.c (look_for_default): Make static.  Remove unused local
	path.  Check using EXECUTABLE_SUFFIX.
	(read_rc_file): Allocate enough space to hold EXECUTABLE_SUFFIX.
	* Makefile.am: Rebuild dependencies.
	(dllwrap_LDADD): Add $(INTLLIBS).
	* configure, Makefile.in, config.in: Rebuild.
1999-06-22 20:39:46 +00:00
Ian Lance Taylor
be2acf2756 * subsegs.c (subseg_text_p): Rewrite non BFD_ASSEMBLER case to use
a list of names, to try obj_segment_name, and to try abbreviated
	names when using COFF without long section names.
1999-06-22 19:04:42 +00:00
Ian Lance Taylor
7dcc986550 * config/tc-alpha.c: More use of symbol accessor functions.
* config/tc-arc.c: Likewise.
	* config/tc-d30v.c: Likewise.
	* config/tc-fr30.c: Likewise.
	* config/tc-i860.c: Likewise.
	* config/tc-m88k.c: Likewise.
	* config/tc-mcore.c: Likewise.
	* config/tc-ns32k.c: Likewise.
	* config/tc-sparc.c: Likewise.
	* config/tc-v850.c: Likewise.
1999-06-22 14:53:01 +00:00
Ian Lance Taylor
a77f5182c7 * config/tc-arc.c (get_arc_exp_reloc_type): Change uses of
sy_value with appropriate accessor functions.
	* config/tc-arm.c (md_apply_fix3): Likewise.
	* config/tc-d10v.c (AT_WORD_P): Likewise.
	* config/tc-v850.c (reg_name_search): Likewise.
1999-06-22 14:35:19 +00:00
Ian Lance Taylor
8fc2b121ea reformat copyright paragraph 1999-06-22 14:32:33 +00:00
Ian Lance Taylor
d02d939fdb add a couple of if/else/endif comments 1999-06-22 14:32:12 +00:00
Ian Lance Taylor
fed9b18aea * config/obj-ecoff.c (obj_ecoff_set_ext): Change uses of bsym to
use symbol_get_bfdsym instead.
	* config/tc-ppc.c (md_assemble): Likewise.
	* config/tc-v850.c (v850_comm): Likewise.
1999-06-22 14:17:55 +00:00
Ian Lance Taylor
310b5aa239 1999-06-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
* config/tc-arc.c (tc_gen_reloc): Use symbol_get_bfdsym to get at
	the symbol, rather than accessing the bsym member.
	* config/tc-d10v.c (tc_gen_reloc): Likewise.
	* config/tc-d30v.c (tc_gen_reloc): Likewise.
	* config/tc-mcore.c (tc_gen_reloc): Likewise.
	* config/tc-mn10200.c (tc_gen_reloc): Likewise.
	* config/tc-mn10300.c (tc_gen_reloc): Likewise.
	* config/tc-ns32k.c (tc_gen_reloc): Likewise.
	* config/tc-tic30.c (tc_gen_reloc): Likewise.
	* config/tc-v850.c (tc_gen_reloc): Likewise.
1999-06-22 14:07:40 +00:00
Mark Mitchell
2f5116e25d * elflink.h (link_read_relocs): Explicitly cast external_relocs to
bfd_byte * before performing pointer arithmetic.
1999-06-22 13:57:15 +00:00
Jeff Law
9e103c9cd2 * elf-hppa.h: New file. Common stuff for elf32 and elf64 PA
support.
        * elf32-hppa.c: Include elf-hppa.h.
        (ARCH_SIZE): Define.
        (elf_hppa_reloc_type_lookup): Delete.  Found in the common code
        now.
        (elf32_hppa_info_to_howto): Similarly.
        (elf_hppa_howto_table): Similarly.
        (elf_hppa_reloc_type_lookup): Similarly.
        (hppa_elf_gen_reloc_type): Similarly.
        * elf32-hppa.h (ELF_HOWTO_TALBE, N_PARISC_RELOCS): Delete.
1999-06-22 12:20:30 +00:00
Nick Clifton
5c6bbab8fe document behaviour of dot inside sections. 1999-06-22 11:23:06 +00:00
Nick Clifton
232fb1a3f6 Catch overflow in 22_PCREL reloc. 1999-06-22 02:41:43 +00:00
Jeff Law
69e617ca27 h
* readelf.c (dump_relocations): Use elf_hppa_reloc_type instead of
        elf32_hppa_reloc_type.
1999-06-21 15:55:49 +00:00
Jeff Law
6202000d60 m
* readelf.c (dump_relocations): Use elf_hppa_reloc_type instead of
        elf32_hppa_reloc_type.
1999-06-21 15:55:47 +00:00
Jeff Law
b388df8754 d
* tc-hppa.c (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.
        (hppa_gen_reloc_type): Conditionalize on BFD64.
        (tc_gen_reloc): Re-enable ELF relocations.
        * tc-hppa.h (TARGET_FORMAT): Handle elf64-hppa format.
1999-06-21 15:48:51 +00:00
Jeff Law
9cb8e75e6c * tc-hppa.c (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.
(hppa_gen_reloc_type): Conditionalize on BFD64.
        (tc_gen_reloc): Re-enable ELF relocations.
        * tc-hppa.h (TARGET_FORMAT): Handle elf64-hppa format.
1999-06-21 15:48:48 +00:00
Jeff Law
45b1824802 8
* hppa.h (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.
1999-06-21 15:37:49 +00:00
Jeff Law
dd1a42115b b
* hppa.h (elf_hppa_reloc_type): Renamed from elf32_hppa_reloc_type.
1999-06-21 15:37:48 +00:00
Jason Molenda
9e0b60a847 import gdb-1999-06-21 snapshot 1999-06-21 13:27:42 +00:00
Mark Mitchell
a8e53fb060 * scripttempl/elf.sc (WRITABLE_RODATA): New variable for
controlling whether or not .rodata is in the data segment or the
	text segment.
1999-06-21 13:11:05 +00:00
Ian Lance Taylor
6094e721e9 * alpha-dis.c: Don't include <stdlib.h>.
* arm-dis.c: Include "sysdep.h".
	* tic30-dis.c: Don't include <stdlib.h> or <string.h>.  Include
	"sysdep.h".
	* Makefile.am: Rebuild dependencies.
	* Makefile.in: Rebuild.
1999-06-21 10:11:52 +00:00
Ian Lance Taylor
271025ebee * coff-arm.c (arm_emit_base_file_entry): Explicitly declare return
type.
1999-06-21 10:04:37 +00:00
Ian Lance Taylor
3d10331912 * config/tc-arm.c (ldst_extend): Add parentheses to avoid
warning.
	(do_ldst): Move assignment out of if condition.
	(md_apply_fix3): Add casts to avoid printf format warnings.  Add
	parentheses to avoid warning.
1999-06-21 10:03:29 +00:00
Nick Clifton
155f0fe7a5 Use symbol_get_bfdsym() macro 1999-06-21 09:11:27 +00:00
Nick Clifton
776b24b437 Include struc-symbol.h so that symbol structure definition is available. 1999-06-21 08:08:52 +00:00
Mark Mitchell
030d863d4f * mips.h (Elf32_Internal_Msym): New structure.
(Elf32_External_Msym): Likewise.
	(ELF32_MS_REL_INDEX): New macro.
	(ELF32_MS_FLAGS): Likewise.
	(ELF32_MS_INFO): Likewise.
1999-06-21 06:57:35 +00:00
Nick Clifton
6f798e5c17 Add new command line switch --thumb-entry. 1999-06-21 03:30:32 +00:00
Nick Clifton
74479bd3b9 Link object files with the .exp file, not the .lib file 1999-06-21 03:25:35 +00:00
Richard Henderson
ba2be5816c H.J. Lu <hjl@gnu.org>
* configure.in (all_libpath): Accumulate across all enabled targets.
1999-06-20 17:43:44 +00:00
Richard Henderson
0bde07d41a * section.c (_bfd_strip_section_from_output): Ignore sections
DISCARDed by the link script.
1999-06-20 14:15:42 +00:00
Richard Henderson
f97f730029 * emultempl/armelf.em: Watch EMULATION_LIBPATH instead of
DEFAULT_EMULATION.
        * emultempl/elf32.em: Likewise.
        * emultempl/sunos.em: Likewise.
1999-06-20 14:12:08 +00:00
Ian Lance Taylor
f800e11d88 * elflink.h (elf_link_remove_section_and_adjust_dynindices):
Remove unused local variable spp.
1999-06-19 14:10:28 +00:00
Ian Lance Taylor
cdb72c32be * xcofflink.c (bfd_xcoff_size_dynamic_sections): Don't crash if
the entry symbol is not set.
1999-06-19 14:08:46 +00:00
Ian Lance Taylor
809ffe0deb * config/tc-ppc.c: Update for symbol handling changes.
* config/obj-coff.c: Likewise.
1999-06-19 14:04:45 +00:00
DJ Delorie
aab3279588 * deflex.l: Accept single-character symbol names. 1999-06-18 19:44:21 +00:00
Richard Henderson
3336653ad1 * Makefile.am (GENSCRIPTS): Pass EMULATION_LIBPATH, not EMUL.
* configure.in (all_emuls): Add targ_extra_libpath.
        (all_libpath, EMULATION_LIBPATH): Define.
        * configure.tgt (powerpc-*-linux-gnu*): Define targ_extra_libpath.
        * genscripts.sh (LIB_PATH): Define if emulation in EMULATION_LIBPATH.
1999-06-18 15:25:45 +00:00
Jeff Law
49863f82f0 * tc-hppa.c: General cleanups of ELF support. No more spaces
and subspaces for ELF.
        (GDB_DEBUG_SPACE_NAME): Delete definition for ELF.
        (GDB_STRINGS_SUBSPACE_NAME): Likewise.
        (GDB_SYMBOLS_SUBSPACE_NAME): Likewise
        (UNWIND_SECTION_NAME): Likewise.
        (space/subspace related structures): Conditionalize definitions
        on OBJ_SOM.
        (space/subspace directives and support routines): Conditionalize
        definitions and references/uses on OBJ_SOM.
        (label_symbol_struct): For ELF, track the symbol's segment.  For
        SOM track its space.
        (pa_define_label, pa_undefine_label, pa_get_label): Corresponding
        changes.
        (USE_ALIASES): Kill for both SOM & ELF.
        (pa_def_subspaces, pa_def_spaces): Corresponding changes.
        (pa_space, pa_subspace): Corresponding changes.
        (pa_spaces_begin): Corresponding chagnes.
        (md_begin): Do not muck around with space/subspace stuff for
        OBJ_ELF.
        (md_apply_fix): Temporarily disable argument relocation stuff
        for OBJ_ELF.
        (tc_gen_reloc): Temporarily disable relocation generation for
        OBJ_ELF
        (pa_build_unwind_subspace): Similarly.
1999-06-18 13:35:16 +00:00
Richard Henderson
72b60c230f * elf64-alpha.c (elf64_alpha_relocate_section): Don't adjust
GPDISP or LITUSE in a relocatable link.
1999-06-18 04:25:56 +00:00
Nick Clifton
fed881b14b Patches for eCos: Dump literal pool on section change. Mark thumb function
aliases as being thumb functions as well.
1999-06-18 01:38:26 +00:00
Joern Rennecke
aec89efbf6 * dwarf1.c (alloc_dwarf1_unit): Allocate using bfd_zalloc.
* (alloc_dwarf1_func): Likewise.
1999-06-17 13:26:08 +00:00
Nick Clifton
2f3519a231 Fix -Wuh and -Wnhu options so that they work. 1999-06-17 04:51:25 +00:00
Nick Clifton
0f94f4c867 Detect illegal use of hash symbols in assembler mnemonics. 1999-06-17 02:13:18 +00:00
Nick Clifton
df75f1af9c Detect symbols typed as thumb functions. 1999-06-16 10:03:59 +00:00
Nick Clifton
5876e06d81 Add detection of IMB and IMBRange SWIs. 1999-06-16 02:58:52 +00:00
Nick Clifton
dd92f63977 Add -M command line switch to objdump - text of switch is passed on to disassembler
Add support for register name set selection ot ARM disassembler.
1999-06-16 02:24:36 +00:00
Jeff Law
5ba624b0f4 * libhppa.h: Fix various formatting errors.
(assemble_3); Rewrite using CATENATE.
        (assemble_17): Fix various bugs.
1999-06-16 02:13:40 +00:00
Nick Clifton
59d23ada01 Fix definition of R_MCORE_NONE reloc 1999-06-16 02:11:50 +00:00
Richard Henderson
0c3ff40b22 * section.c (SEC_SHORT): Define.
* bfd-in2.h: Rebuild.
1999-06-15 15:12:23 +00:00
Jason Molenda
2dcad5ea23 import gdb-1999-06-14 snapshot 1999-06-15 01:08:59 +00:00
Jason Molenda
0f71a2f66f import gdb-1999-06-14 snapshot 1999-06-14 18:08:47 +00:00
Andreas Schwab
308b1ffded Fix use of @item vs. @itemx. 1999-06-14 01:40:26 +00:00
Andreas Schwab
a53f781e57 Fix typo. 1999-06-14 01:36:32 +00:00
Andreas Schwab
c89746f691 Fix typos. 1999-06-14 01:30:19 +00:00
Ian Lance Taylor
f6886bc42e remove duplicate entry, add missing blank line 1999-06-13 19:46:31 +00:00
Ian Lance Taylor
ffc0eff1cd x 1999-06-13 19:39:23 +00:00
Ian Lance Taylor
bd917ff662 * cg_dfn.c: Include "libiberty.h"
(DFN_INCR_DEPTH): Define instead of DFN_DEPTH.
	(dfn_stack): Define as pointer rather than array.
	(pre_visit): Reallocate dfn_stack as needed.
1999-06-13 19:38:06 +00:00
Ian Lance Taylor
2575273dcb mention --no-undefined 1999-06-13 19:25:57 +00:00
Ian Lance Taylor
e4a86f6fb4 From K. Richard Pixley <rich@noir.com>:
* configure.in (ppc-*-vxworks*): New target.
	* configure: Rebuild.
1999-06-13 19:12:01 +00:00
Ian Lance Taylor
e07bf1ac47 * objdump.c (disassemble_bytes): If the disassembler returns an
error, print out anything it may have printed to the buffer.  From
	H.J. Lu <hjl@gnu.org>.
1999-06-13 19:02:25 +00:00
Mark Mitchell
78de0b4335 * elflink.h (elf_link_remove_section_and_adjust_dynindices):
Remove abfd parameter.  Use _bfd_strip_section_from_output.
	(bfd_elf_size_dynamic_sections): Adjust callers accordingly.
1999-06-13 18:35:29 +00:00
Ian Lance Taylor
aa1b0fd6fe * gas/i386/katmai.d: Tweak for recent disassembler changes. 1999-06-13 17:13:19 +00:00
Ian Lance Taylor
63a5042b9b x 1999-06-13 17:05:17 +00:00
Ian Lance Taylor
7d4210142a Rework last checkin to the following:
* i386-dis.c (FWAIT_OPCODE): Define.
	(used_prefixes): New static variable.
	(fetch_data): Don't print an error message if we have already
	fetched some bytes successfully.
	(ckprefix): Clear used_prefixes.  Use FWAIT_OPCODE, not 0x9b.
	(prefix_name): New static function.
	(print_insn_i386): If setjmp fails, indicating a data error, but
	we have managed to fetch some bytes, print the first one as a
	prefix or a .byte pseudo-op.  If fwait is followed by a non
	floating point instruction, print the first prefix.  Set
	used_prefixes when prefixes are used.  If any prefixes were not
	used after disassembling the instruction, print the first prefix
	instead of printing the instruction.
	(putop): Set used_prefixes when prefixes are used.
	(append_seg, OP_E, OP_G, OP_REG, OP_I, OP_sI, OP_J): Likewise.
	(OP_DIR, OP_SIMD_Suffix): Likewise.
1999-06-13 17:04:42 +00:00
Mark Mitchell
42751cf354 * elf-bfd.h (_bfd_elf_link_adjust_dynindx): New function.
* elflink.c (_bfd_elf_link_adjust_dynindx): Define it.
	* elflink.h (elf_link_remove_section_and_adjust_dynindices): New
	function.
	(bfd_elf_size_dynamic_sections): Use it.
1999-06-13 14:49:51 +00:00
Ian Lance Taylor
5076851fbc * i386-dis.c (FWAIT_OPCODE): Define.
(fetch_data): Don't print an error message if we have already
	found an fwait prefix.
	(ckprefix): Use FWAIT_OPCODE rather than 0x9b.
	(print_insn_i386): If setjmp fails, indicating a data error, but
	we have found an fwait prefix, then print it as an fwait
	instruction.  In any case, return the number of bytes consumed, if
	any, rather than always returning -1.
1999-06-13 13:56:26 +00:00
Ian Lance Taylor
277c9afe08 mention EXCLUDE_FILE 1999-06-13 10:20:50 +00:00
Ian Lance Taylor
d7ec8102d9 * defparse.y (explist): Remove separate expline to eliminate
shift/reduce conflict.
	From Kai-Uwe Rommel <rommel@ars.de>:
	* defparse.y: Add tokens NONSHARED, SINGLE, MULTIPLE,
	INITINSTANCE, INITGLOBAL, TERMINSTANCE, and TERMGLOBAL.
	(command): Add option_list after LIBRARY.
	(attr): Accept and ignore NONSHARED, SINGLE, and MULTIPLE.
	(option_list, option): New nonterminals.
	* deflex.l: Recognize NONSHARED, SINGLE, MULTIPLE, INITINSTANCE,
	INITGLOBAL, TERMINSTANCE, and TERMGLOBAL.
1999-06-13 10:16:43 +00:00
Ian Lance Taylor
3e2699126a 1999-06-13 Alan Modra <alan@spri.levels.unisa.edu.au>
* elf32-i386.c (elf_howto_table): Change R_386_PC8 from
	complain_overflow_bitfield to complain_overflow_signed.
1999-06-13 09:23:04 +00:00
Ulrich Drepper
a8aed0fb2d (tc_gen_reloc): Fix handling of GOTPC relocs. 1999-06-13 06:39:21 +00:00
Mark Mitchell
6b5bd373fb * elflink.h (elf_link_read_relocs_from_section): New function,
split out from ...
	(elf_link_read_relocs): Here.  Use it for both relocation
	sections.
1999-06-13 01:13:26 +00:00
Ian Lance Taylor
197a7bfdca * ld-checks/asm.s: Use a symbol name for .lcomm.
* ld-checks/checks.exp: Use different names for the two tests.
	Don't add extra text when invoking fail.
1999-06-12 22:40:18 +00:00
Ian Lance Taylor
7565ed77a1 * write.c (adjust_reloc_syms): Rather than never reducing reloc
which refer to symbols in linkonce sections, permit reducing the
	relocs if the symbol is local.
1999-06-12 22:15:51 +00:00
Ian Lance Taylor
aa8804e46e This fixes ! to work as documented in a memory region attribute list.
From Thomas Zenker <thz@lennartz-electronic.de>:
	* ldgram.y (attributes_opt): Use attributes_list instead of NAME.
	(attributes_list, attributes_string): New nonterminals.
	* ldlang.c (lang_set_flags): Add invert parameter.  Don't handle
	'!'.
	* ldlang.c (lang_set_flags): Update declaration.
1999-06-12 21:24:56 +00:00
Mark Mitchell
57e21befb9 * elfcode.h (elf_slurp_reloc_table_from_section): Don't assume
asect->reloc_count is valid.
1999-06-12 17:56:26 +00:00
Ian Lance Taylor
b9e57a387a * subsegs.c (subseg_text_p): New function.
* as.h (subseg_text_p): Declare.
	* read.c (do_align): Use subseg_text_p to set the default fill.
	* write.c (subsegs_finish): Likewise.
	* config/obj-coff.c (write_object_file): Likewise.
	* config/tc-i386.h (md_maybe_text): Don't define.
	(md_do_align): Use subseg_text_p to set the default fill.
	* config/tc-m32r.c (m32r_do_align): Likewise.
	* config/tc-sh.c (sh_do_align): Likewise.
	* config/tc-sparc.h (md_do_align): Likewise.
1999-06-12 16:49:51 +00:00
Ian Lance Taylor
d84feeaca5 * ar.c (O_BINARY): Define as 0 if not defined.
(ranlib_touch): Open file with O_BINARY.
1999-06-12 16:07:57 +00:00
Ian Lance Taylor
18226413df * rename.c (O_BINARY): Define as 0 if not defined.
(simple_copy): Open files with O_BINARY.
1999-06-12 16:04:07 +00:00
Ian Lance Taylor
f91ea84976 Based on patch from H. Peter Anvin <hpa@transmeta.com>:
* objcopy.c (struct section_list): Add copy field.
	(sections_copied): New static variable.
	(copy_options): Add "only-section".
	(copy_usage): Mention -j and --only-section.
	(find_section_list): Initialize copy field.
	(is_strip_section): Check for copying sections.
	(copy_object): Check sections_copied when calling filter_symbols.
	(setup_section): Check for copying sections.
	(copy_section): Likewise.
	(copy_main): Handle -j/--only-section.
	* binutils.texi, objcopy.1: Document -j/--only-section.
1999-06-12 15:42:04 +00:00
Ian Lance Taylor
f353eb8a51 * configure.in: If frexp is not available, check in -lm.
* configure: Rebuild.
1999-06-12 15:20:21 +00:00
Ian Lance Taylor
2a275620b1 * emultempl/pe.em (gld_${EMULATION_NAME}_after_parse): Don't add
entry_symbol as an undefined symbol when doing a relocateable
	link.  From <jeffdb@goodnet.com>.
1999-06-12 14:00:03 +00:00
Ian Lance Taylor
789be9f7ca * readelf.c (get_elf_class): Use correct printf format for type.
(get_data_encoding): Likewise.
	(get_osabi_name): Likewise.
	(process_file_header): Don't pass an extra argument to printf.
	(process_dynamic_segment): Cast dynamic_size to long before
	printing.
	(decode_location_expression): Cast byte_get to long before
	printing.
1999-06-12 13:30:24 +00:00
Ian Lance Taylor
2641b0c9d8 1999-06-12 David O'Brien <obrien@freebsd.org>
* configure.tgt: (i[3456]86-*-freebsd*): Now defaults to ELF.
1999-06-12 13:18:26 +00:00
Ian Lance Taylor
008960a5a4 1999-06-12 David O'Brien <obrien@freebsd.org>
* configure.in: (i[3456]86-*-freebsd*): Now defaults to ELF.
	* configure: Rebuild.
1999-06-12 13:14:39 +00:00
Ian Lance Taylor
cc3bfcee61 * elf32-mips.c (mips_elf32_section_processing): Permit a
SHT_MIPS_REGINFO section to have a size of 0.
1999-06-12 13:08:29 +00:00
Ian Lance Taylor
7a50d4ac66 1999-06-12 David O'Brien <obrien@freebsd.org>
* config.bfd (alpha*-*-freebsd*): New target.
	(i[3456]86-*-freebsd*): Now defaults to ELF.
1999-06-12 13:06:26 +00:00
Ian Lance Taylor
99c262f8b0 * ld-scripts/phdrs.exp: Change target check from "*-*-linuxaout*"
to "*-*-linux*aout*".
	* ld-scripts/weak.exp: Likewise.
	* ld-shared/shared.exp: Likewise.  Simplify condition a bit.
1999-06-12 10:47:08 +00:00
Ian Lance Taylor
966d5bec04 * gas/elf/elf.exp: Don't run tests on "*-*-linux*aout*" or
"*-*-linux*oldld*".
	* gas/vtable/vtable.exp: Likewise.
	* gas/i386/reloc.d: Modify expected reloc names to accept a.out
	names.
1999-06-12 10:43:43 +00:00
Ian Lance Taylor
c1b640f7dc * Makefile.in: (taz): Don't use texinfo/gpl.texinfo or
texinfo/lgpl.texinfo.
1999-06-12 10:11:02 +00:00
Ian Lance Taylor
c376f4edc3 * Makefile.in: Change distribution targets to use bzip2 instead of
gzip.
	(TEXINFO_SUPPORT): Set to just texinfo/texinfo.tex.
1999-06-12 10:04:11 +00:00
Ian Lance Taylor
ff35fedcc1 add texinfo.tex 1999-06-12 09:59:55 +00:00
Ian Lance Taylor
d9ac5a3b10 * dwarf2dbg.c: Include elf/dwarf2.h with "", not <>.
* Makefile.am: Rebuild dependencies.
	* Makefile.in: Rebuild.
1999-06-12 08:53:18 +00:00
Ian Lance Taylor
89b66cdeb5 fix copyrights 1999-06-12 08:48:00 +00:00
Ian Lance Taylor
a1605869fb * struc-symbol.h: Put local_symbol code in ifdef BFD_ASSEMBLER.
* symbols.c: Likewise.
	* config/obj-aout.c (obj_crawl_symbol_chain): Refer directly to
	sy_next field when taking address, rather than symbol_next.
1999-06-11 21:07:46 +00:00
Ian Lance Taylor
ae69440806 * config/tc-i386.c (i386_immediate): Remove unused label
seg_unimplemented.
1999-06-11 21:07:03 +00:00
Ian Lance Taylor
9e3af0e72a * dwarf2dbg.c: Change bfd_vma to addressT and bfd_signed_vma to
offsetT.
	(out_set_addr): Don't use BYTES_PER_ADDRESS.  Instead, get the
	value from the output file architecture.
	(dwarf2_gen_line_info): Ifdef BFD_ASSEMBLER specific code.
	* dwarf2dbg.h: Change bfd_vma to addressT.
1999-06-11 21:06:44 +00:00
Ian Lance Taylor
14c1861305 * gas/i386/amd.s: Add a symbol so a.out tests will work.
* gas/i386/katmai.s: Likewise.
	* gas/i386/amd.d: Corresponding change.
	* gas/i386/katmai.d: Corresponding change.
1999-06-11 21:02:59 +00:00
Ian Lance Taylor
a7cd1c2299 * dwarf2dbg.h: Use PARAMS in function declarations. 1999-06-11 20:29:31 +00:00
Ian Lance Taylor
44257b8b9d * reloc.c (_bfd_relocate_contents): Permit bitfield relocations to
wrap if the relocation covers the high bit of an address.
1999-06-11 20:23:58 +00:00
Ian Lance Taylor
76171f81c7 1999-06-11 Martin Dorey <mdorey@madge.com>
* write.c (fixup_segment): Don't add symbol value for i960 ELF.
	* config/tc-i960.c (s_leafproc): Don't call tc_set_bal_of_cal if
	OBJ_ELF.
	(md_apply_fix): Simplify BFD_ASSEMBLER handling.
1999-06-11 19:03:06 +00:00
Ian Lance Taylor
5865bb778d * config/tc-i386.c (md_apply_fix3): Add default case to switch. 1999-06-10 21:47:35 +00:00
Ian Lance Taylor
9e7c96d9d0 * config/tc-sparc.c (md_pseudo_table): Remove pushsection and
popsection.
1999-06-10 21:45:36 +00:00
Ian Lance Taylor
1b50c71893 * config/tc-sparc.c (sparc_ip): Add default case to reloc switch. 1999-06-10 21:43:24 +00:00
Ian Lance Taylor
1bf67e0db8 * read.c (read_a_source_file): Only declare inescape if
QUOTES_IN_INSN.
1999-06-10 21:36:37 +00:00
Ian Lance Taylor
41e60a8210 * itbl-ops.c (itbl_disassemble): Change sprintf format strings to
match parameters.
	(find_entry_byval): Add parens to avoid warning.
1999-06-10 21:35:32 +00:00
Ian Lance Taylor
84be4d7117 * as.c: If HAVE_ITBL_CPU, include "itbl-ops.h". 1999-06-10 21:35:13 +00:00
Ian Lance Taylor
f5f9cc4ffb * dwarf2.c (decode_line_info): Remove unused variable first_time. 1999-06-10 21:28:56 +00:00
Ian Lance Taylor
9b4d630bb9 * symbols.c (resolve_symbol_value): Don't permit subtraction of
undefined symbols.
1999-06-10 21:26:10 +00:00
Ian Lance Taylor
8ee99f93eb * gas/mips/sync.d: Pass -mips2 to the assembler.
* gas/mips/elf_e_flags.s: Tweak code so that the tests pass for
	mips-elf target as well as mips64-elf target.
	* gas/mips/elf_e_flags1.d: Corresponding changes.
	* gas/mips/elf_e_flags2.d: Likewise.
	* gas/mips/elf_e_flags3.d: Likewise.
	* gas/mips/elf_e_flags4.d: Likewise.
	* gas/elf/elf.exp: Add setup_xfail for mips*-*-*.
	* gas/all/itbl-test.c (main): Update itbl_get_reg_val call for new
	parameter.
1999-06-10 21:15:05 +00:00
Richard Henderson
a22b281cd7 Jakub Jelinek <jj@ultra.linux.cz>
* config/tc-sparc.c (sparc_ip): Don't use side-effect expression
        with isoctal.
        * config/tc-sparc.c (synthetize_setuw, synthetize_setsw,
        synthetize_setx): New functions.
        (md_assemble): Broken the special cases into the above
        functions. Make compiler happy if sizeof(bfd_vma)==4.
        Fix sethi generated from set/setuw. If instructions have a relloc,
        always clear the fields to be relocated in the opcode.
        (sparc_ip): Remove special_case global variable.
1999-06-10 21:11:39 +00:00
Richard Henderson
b3fb1136bf Jakub Jelinek <jj@ultra.linux.cz>
* gas/sparc/synth64.s: Add checks for single register signx/clruw.
        * gas/sparc/set64.s: Add tests for setuw and setsw synthetic insns.
        * gas/sparc/prefetch.d: Add -64 as switch.
        * gas/sparc/rdpr.d: Ditto.
        * gas/sparc/wrpr.d: Ditto.
        * gas/sparc/synth64.d: Ditto, reflect synth64.s changes.
        * gas/sparc/reloc64.d: Add -64 as switch, be more tolerant, as
        current gas outputs %hi(0) and not %hi(0x0).
        * gas/sparc/set64.d: Add -64 as switch, reflect set64.s changes and
        optimizations for setx instruction.
        * gas/sparc/sparc.exp: Do sparc64*-*-* checks if it is any of the
        compiled-in targets.
1999-06-10 21:08:10 +00:00
Richard Henderson
09cb30ac5e Jakub Jelinek <jj@ultra.linux.cz>
* sparc.h (R_SPARC_max_std): Define.
1999-06-10 21:00:53 +00:00
Richard Henderson
60dac29966 Jakub Jelinek <jj@ultra.linux.cz>
* elf64_sparc.c (sparc64_elf_relocate_section): Use R_SPARC_max_std
        instead of R_SPARC_max.
        (sparc64_elf_info_to_howto): Likewise.
        * elf32_sparc.c (elf32_sparc_relocate_section): Likewise.
        (elf32_sparc_info_to_howto): Likewise; handle vtable relocations.
1999-06-10 20:59:54 +00:00
Ian Lance Taylor
d7ba4a779e Based on patches from John W. Woznack <jwoznack@concentric.net>:
* itbl-ops.c (itbl_get_reg_val): Add pval parameter.  Return
	indication of success rather than a value.
	(itbl_get_val): Likewise.
	(itbl_get_field): Use strcspn.  Change delimiters to include
	parens.
	* itbl-ops.h (itbl_get_reg_val): Update declaration.
	(itbl_get_val): Likewise.
	* config/tc-mips.c (mips_ip): Update call to itbl_get_reg_val.
1999-06-10 20:35:50 +00:00
Ian Lance Taylor
7f2f689c83 * symbols.c (copy_symbol_attributes): Convert local symbols to
regular symbols.
1999-06-10 14:45:58 +00:00
Richard Henderson
18452d405c * gas/macros/irp.s: Use foo' and bar' instead of r' and s'.
* gas/macros/rept.s, gas/macros/test2.s, gas/macros/test3.s: Likewise.
        * gas/macros/{irp,rept,test2,test3}.d: Update.
1999-06-10 13:48:44 +00:00
Nick Clifton
c1d3c45e14 Add support for ARM920 and ARM920t 1999-06-10 01:59:33 +00:00
Nick Clifton
4abec3504c Updated to match latest output. 1999-06-10 01:20:33 +00:00
Jeff Law
41ee1a61d7 è
* hppa.h: Update with various changes from newest PA ELF
        specifications.
1999-06-09 14:22:08 +00:00
Jeff Law
0b3ded27b2 .
* hppa.h: Update with various changes from newest PA ELF
        specifications.
1999-06-09 14:22:07 +00:00
Nick Clifton
f75692fe1a restore previous format of --help output 1999-06-09 05:35:55 +00:00
Andreas Schwab
2bdba6c9ec * ld-cdtest/cdtest-main.cc: Avoid `implicit int' warning.
* ld-shared/sh1.c: Fix typo.
1999-06-09 03:04:03 +00:00
Andreas Schwab
3026443322 * binutils-all/objdump.exp: Tighten regexp to match `objdump -i'
output to avoid massive exponential behaviour.
1999-06-09 03:01:26 +00:00
Andreas Schwab
148d3c43be * readelf.c (dump_section): Cast bfd_vma values to [unsigned] long
for printing, in case it is wider than long.
	(display_block): Likewise.
	(read_and_display_attr): Likewise.
	(decode_location_expression): Likewise.  Don't depend on
	evaluation order.
1999-06-09 02:44:17 +00:00
Jason Molenda
6027a0b892 import gdb-1999-06-07 snapshot 1999-06-08 02:18:01 +00:00
Richard Henderson
9d7428a9e3 * section.c (_bfd_strip_section_from_output): Remove output
sections with no initial link_order.
1999-06-07 23:22:00 +00:00
Jason Molenda
cce74817d9 import gdb-1999-06-07 snapshot 1999-06-07 19:19:32 +00:00
Richard Henderson
eb858bb431 Typo. 1999-06-07 12:54:17 +00:00
Richard Henderson
63fab58c7d Jakub Jelinek <jj@ultra.linux.cz>
* config/tc-sparc.c (md_assemble): Fix up setx, support setsw.
        Optimize set if sizeof(bfd_vma) == 64.
        (sparc_ip): Fix sethi - without %hi() it should generate
        R_SPARC_32 reloc, not R_SPARC_HI22.
        (tc_gen_reloc): Handle BFD_RELOC_SPARC22.
1999-06-07 12:53:56 +00:00
Richard Henderson
440034c99f Jakub Jelinek <jj@ultra.linux.cz>
* sparc-opc.c: Fix up set, setsw, setuw operand kinds.
        Support signx %reg, clruw %reg.
1999-06-07 12:44:48 +00:00
Richard Henderson
cf9a13018b Jakub Jelinek <jj@ultra.linux.cz>
* config/tc-sparc.c (md_begin): Handle native wordsize aliases.
        (s_ncons): New function.
        (native_op_table): New table.
        (sparc_ip): Be more strict on %hi() etc.; prepare assembler for
        R_SPARC_OLO10 handling.
1999-06-07 12:40:36 +00:00
Richard Henderson
bed2c8562a Jakub Jelinek <jj@ultra.linux.cz>
* sparc-opc.c: Add aliases Solaris as supports.
1999-06-07 12:26:46 +00:00
Nick Clifton
3c82f80fc0 Define ELF_MAXPAGESIZE 1999-06-07 10:27:21 +00:00
Richard Henderson
bf29b23178 * expr.h (struct expressionS): Revert last change; widen X_op.
* config/tc-alpha.c (md_begin): Check the field is wide enough.
1999-06-07 10:23:47 +00:00
Andreas Schwab
32a5c94a56 * windres.c (usage): Fix typo. 1999-06-07 03:16:55 +00:00
Andreas Schwab
71f221746a * Makefile.am (CFILES): Add arc-{dis,opc}.c and v850-{dis,opc}.c.
* Makefile.in: Regenerated.
1999-06-07 03:06:39 +00:00
Andreas Schwab
a4835b426a * Makefile.am (TARGET_CPU_CFILES): Add config/tc-fr30.c.
(TARGET_CPU_HFILES): Add config/tc-fr30.h.
	(TARG_ENV_HFILES): Add config/te-epoc-pe.h.
	* Makefile.in: Regenerated.
1999-06-07 02:58:53 +00:00
Andreas Schwab
eb519dff86 * Makefile.am (SOURCE_HFILES): Add missing headers.
* Makefile.in: Regenerated.
1999-06-07 02:51:40 +00:00
Andreas Schwab
9be1cda6a5 * config/obj-elf.c (obj_elf_common): In MRI mode if called as
`common' pass on to s_mri_common.
	(elf_pseudo_table): Pass 1 to obj_elf_common for `common'.
1999-06-07 02:28:54 +00:00
Mark Mitchell
7f7e7b689c * elf32-mips.c (_bfd_mips_elf_print_private_data): Recognize
the N32 ABI.
1999-06-06 22:31:46 +00:00
Richard Henderson
623356292c * config/obj-elf.c (obj_elf_section): Don't free the return
value of demand_copy_C_string.
1999-06-06 00:09:50 +00:00
Richard Henderson
9de8d8f184 * dwarf2dbg.c (dwarf2_gen_line_info): Mirror the section symbol
creation logic from obj_elf_create_section.
        * config/obj-elf.c (elf_pseudo_tab): Add pushsection/popsection.
        (section_stack): New.
        (special_sections): Make const.
        (obj_elf_section): Gut and rewrite parsing.
        (obj_elf_change_section): New function broken out of obj_elf_section.
        (obj_elf_parse_section_letters): Likewise.
        (obj_elf_section_word): Likewise.
        (obj_elf_section_type): Likewise.
        (obj_elf_previous): Treat as a toggle.
        (obj_elf_popsection): New.
        * config/tc-ppc.c (ppc_section_word): Take str+len not ptr_str.
        (ppc_section_type): Likewise.
        * config/tc-ppc.h: Likewise.
        * expr.h (struct expressionS): Don't make X_op a bitfield.
        * config/tc-alpha.c: Update for symbol handling changes.
        (md_apply_fix) [case GPREL]: Use now_seg instead of absolute_section.
        (load_expression, emit_ir_load, emit_loadstore, emit_jsrjmp): Likewise.
1999-06-05 23:15:34 +00:00
Richard Henderson
9894490542 * gas/elf/elf.exp: New directory.
* gas/elf/section0.[sd]: New test.
        * gas/elf/section1.[sd]: New test.
1999-06-05 23:14:42 +00:00
Richard Henderson
58b5739a4e * dwarf2dbg.c (*): Convert to K&R + prototypes.
(dwarf2_gen_line_info): Kill unused variables.
        (dwarf2_finish): Likewise.
        (dwarf2_where): Likewise.
        (dwarf2_directive_file): If we've only got a string,
        hand off to s_app_file.
        * ecoff.c: Move the include of ecoff.h.
        * symbols.h (S_IS_FUNCTION): Prototype.
        * read.c (LEX_HASH): Supply a default.
        (lex_type): Use it.
        (s_globl): Update `c' after skipping whitespace.
        * read.h (LEX_END_NAME, is_name_ender): New.
        * expr.c (get_symbol_end): Respect it.
1999-06-05 18:19:09 +00:00
Ian Lance Taylor
993142d5a4 1999-06-04 Mark Klein <mklein@dis.com>
* config/tc-hppa.c (md_begin): Convert local symbol dummy_symbol
	to real if OBJ_SOM
	(tc_gen_reloc): Still need bfd_abs_symbol in some relocs.
1999-06-04 21:08:54 +00:00
Ian Lance Taylor
77e0b0efdb 1999-06-04 H.J. Lu <hjl@gnu.org>
* lib/ld-lib.exp (default_ld_nm): Clear nm_output first if
	necessary.
1999-06-04 20:49:14 +00:00
Richard Henderson
dc1bc0c9a5 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* elf32-ppc.c (ppc_elf_relocate_section): Don't barf on out of
        range undefweak symbols.
        * hash.c: Add missing comma after @xref{}
        * linker.c: Likewise.
1999-06-04 13:25:23 +00:00
Nick Clifton
79e5982fed Define ELF_MAXPAGESIZE for all ELF based ports.
Produce an error message of ELF_MAXPAGESIZE is not defined.
1999-06-04 12:45:07 +00:00
Ian Lance Taylor
4a54b4654d * Makefile.am: Rebuild dependencies.
(BFD32_BACKENDS): Add dwarf1.lo.
	(BFD32_BACKENDS_CFILES): Add dwarf1.c.
	* Makefile.in: Rebuild.
1999-06-04 12:00:31 +00:00
Nick Clifton
1993627733 Use 64bit wide values in internal fields.
Check symbol index against number of symbols when displaying relocations
1999-06-04 11:33:32 +00:00
Ian Lance Taylor
398e8c258a 1999-06-04 Mark Klein <mklein@dis.com>
* config/tc-hppa.c: Update for symbol handling changes.
1999-06-04 10:46:25 +00:00
Nick Clifton
9ea033b2df Add support for 64 bit ELF files. 1999-06-04 08:13:04 +00:00
Nick Clifton
7714a18c89 oops - omitted from previous delta 1999-06-04 07:42:55 +00:00
Nick Clifton
434d1125a3 Rename epoc-pe interworking function names to avoid a name space clash 1999-06-04 07:40:35 +00:00
Nick Clifton
10ab5357b1 Rename epoc-pe interworking function names to avoid a name space clash.
Add epoc-pe to built targets.
1999-06-04 07:39:48 +00:00
Nick Clifton
306b7445e1 Add mcore target 1999-06-04 07:20:18 +00:00
Nick Clifton
886796f9fa Make LDRH/LDRB consistent with LDR when target is PC-relative 1999-06-04 07:14:10 +00:00
Nick Clifton
5164c3826e Update to match current gas,bfd and opcodes. 1999-06-04 07:12:40 +00:00
Nick Clifton
dece465892 (ELF_MAXPAGESIZE): Default to 0x1000 not 1 1999-06-04 06:35:04 +00:00
Andreas Schwab
a9d024b8b0 * elf.c (elf_fake_sections): Undo change of 1999-05-10. 1999-06-04 01:07:38 +00:00
Joern Rennecke
06e1ba78a0 * elf32-sh.c (sh_elf_relax_delete_bytes): Fix setting of
start / stop for recalculating of r_addend of R_SH_SWITCH*.
1999-06-03 19:12:54 +00:00
Joern Rennecke
084aa3aa9f * elf32-sh.c (sh_elf_relax_delete_bytes): Handle R_SH_SWITCH32
in other text sections.
1999-06-03 18:54:32 +00:00
Joern Rennecke
875f7f6940 * libbfd.c (_bfd_generic_verify_endian_match): New function.
* libbfd-in.h (_bfd_generic_verify_endian_match): Declare.
	* libbfd.h: Regenerate.
	* coff-sh.c (sh_merge_private_data): Delete.
	(coff_bfd_merge_private_bfd_data): Change to
	_bfd_generic_verify_endian_match.
	(elf32-sh.c): bfd_elf32_bfd_merge_private_bfd_data: Define.
1999-06-03 18:48:24 +00:00
Nick Clifton
762100ed56 Use macros to hold names of temporary files. 1999-06-03 13:22:45 +00:00
Ian Lance Taylor
080e41e66b * cgen.c: Update for symbol handling changes. 1999-06-03 12:51:21 +00:00
Ulrich Drepper
6a9d5c9a12 Update. 1999-06-03 12:46:39 +00:00
Ian Lance Taylor
f412ead8f6 * config/tc-m32r.c: Update for symbol handling changes. 1999-06-03 12:46:26 +00:00
Ulrich Drepper
f21f3fe0b8 Fix typo: change ELF_MAXPAGE_SIZE to ELF_MAXPAGESIZE. 1999-06-03 12:46:15 +00:00
Ian Lance Taylor
a0f75b47e9 * config/tc-hppa.h: Update for symbol handling changes.
* config/tc-hppa.c: Likewise.
1999-06-03 12:42:36 +00:00
Ian Lance Taylor
174419c123 * config/tc-arm.h: Update for symbol handling changes.
* config/tc-arm.c: Likewise.
	(symbol_make_empty): Remove.  Just use symbol_create.
1999-06-03 09:50:01 +00:00
Ian Lance Taylor
bf27257ea6 * symbols.c (symbol_set_tc): Correct name. 1999-06-03 09:49:04 +00:00
Ian Lance Taylor
a3e38ad3ed * bfd-in.h (bfd_elf32_arm_allocate_interworking_sections): Correct
prototype.
	(bfd_elf32_arm_process_before_allocation): Likewise.
	* bfd-in2.h: Rebuild.
1999-06-03 09:21:53 +00:00
Ian Lance Taylor
6104f0a06c * Makefile.am: Rebuild dependencies.
($(OBJS)): Don't depend upon struc-symbol.h.
	(.dep1, .tcdep, .objdep): Create itbl-parse.h.
	* dep-in.sed: Don't remove struc-symbol.h.
	* Makefile.in: Rebuild.
1999-06-03 09:06:24 +00:00
Ian Lance Taylor
b401371382 * doc/internals.texi (Symbols): Describe changes in symbol
handling.
1999-06-03 08:44:04 +00:00
Ian Lance Taylor
348a348349 * common.h (EM_PPC64): Define. 1999-06-03 08:20:07 +00:00
Richard Henderson
e0a2c38a7b Update. 1999-06-03 03:26:53 +00:00
Richard Henderson
c6e94b2767 * internal.h (BEOS_EXE_IMAGE_BASE, BEOS_DLL_IMAGE_BASE): New. 1999-06-03 03:26:17 +00:00
Richard Henderson
ac50fedaa4 Update. 1999-06-03 03:20:40 +00:00
Richard Henderson
6576f0b52a * dwarf2dbg.c (dwarf2_gen_line_info): Use section_symbol
instead of doing the work by hand.
1999-06-03 03:20:21 +00:00
Richard Henderson
fac0d250c7 * as.c (parse_args): Add option -gdwarf2 to allow requesting
DWARF2 debug info (line information only, at this point).
        * as.h: Update comment about supported debug formats.
        * dwarf2dbg.c, dwarf2dbg.h: New files.
        * Makefile.am (GAS_CFILES, HFILES, GENERIC_OBJS): Add them.
1999-06-03 02:51:53 +00:00
Richard Henderson
b585bc2c0a * expr.c (operand): Don't use [ for parens if we want an index op.
(op_encoding): Switch [ into O_index, if desired.
        (op_rank): Renumber with O_index on bottom.
        (expr): If O_index, match closing bracket.
        * expr.h (O_index): New.
1999-06-03 02:51:27 +00:00
Richard Henderson
1c32af2255 * read.c (read_a_source_file): Conditionally allow matched "
in lines passed to md_assemble.
1999-06-03 02:51:09 +00:00
Richard Henderson
86eab3efc4 * config/obj-elf.c (elf_pseudo_table): Add `common'. 1999-06-03 02:50:51 +00:00
Richard Henderson
159002ff69 David Mosberger <davidm@hpl.hp.com>
* dwarf2.c (struct line_info): Add member END_SEQUENCE to keep
        track of end_sequence markers.
        (add_line_info): Add END_SEQUENCE arg.
        (decode_line_info): Don't try to infer lo_pc and hi_pc from the
        debug-line info---it doesn't work right if a compilation unit
        consists of multiple discontiguous code-sequences.  It would be
        worthwhile to optimize for the common case where a compilation
        unit results in a contiguous set of code sequences, but this is
        quite tricky to get right for arbitrary DWARF2 files.
        (lookup_address_in_line_info_table): Don't use the last line entry
        for a compilation unit for anything with an address higher than
        this line entry.  Also, check for end_sequence markers to
        correctly handle discontinuities.
        (_bfd_dwarf2_find_nearest_line): When checking previously loaded
        compilation units, check all compilation units with each->high==0
        just like when reading compilation units.
        * dwarf2.c (decode_line_info): Initialize table->files and
        table->last_line to NULL to avoid segfaults due to random
        values in these members.
        (concat_filename): Check for out-of-range file number before
        indexing filename table.  Segfaults suck.
        * dwarf2.c (decode_line_info): Don't truncate address to least
        significant 32 bits (breaks 64 bit targets).
        (lookup_address_in_function_table): Ditto.
        (comp_unit_contains_address): Ditto.
1999-06-03 02:46:47 +00:00
Ian Lance Taylor
49309057b4 Add support for storing local symbols in a small structure to save
memory when assembling large files.
	* as.h: Don't include struc-symbol.h.
	(symbolS): Add typedef.
	* symbols.c: Include struc-symbol.h.
	(local_hash): New static variable.
	(save_symbol_name): New static function, from symbol_create.
	(symbol_create): Call save_symbol_name.
	(local_symbol_count): New static variable.
	(local_symbol_conversion_count): Likewise.
	(LOCAL_SYMBOL_CHECK): Define.
	(local_symbol_make): New static function.
	(local_symbol_convert): New static function.
	(colon): Handle local symbols.  Create local symbol for local
	label name.
	(symbol_table_insert): Handle local symbols.
	(symbol_find_or_make): Create local symbol for local label name.
	(symbol_find_base): Check for local symbol.
	(symbol_append, symbol_insert): Check for local symbols.
	(symbol_clear_list_pointers, symbol_remove): Likewise.
	(verify_symbol_chain): Likewise.
	(copy_symbol_attributes): Likewise.
	(resolve_symbol_value): Handle local symbols.
	(resolve_local_symbol): New static function.
	(resolve_local_symbol_values): New function.
	(S_GET_VALUE, S_SET_VALUE): Handle local symbols.
	(S_IS_FUNCTION, S_IS_EXTERNAL, S_IS_WEAK, S_IS_COMMON): Likewise.
	(S_IS_DEFINED, S_IS_DEBUG, S_IS_LOCAL, S_GET_NAME): Likewise.
	(S_GET_SEGMENT, S_SET_SEGMENT, S_SET_EXTERNAL): Likewise.
	(S_CLEAR_EXTERNAL, S_SET_WEAK, S_SET_NAME): Likewise.
	(symbol_previous, symbol_next): New functions.
	(symbol_get_value_expression): Likewise.
	(symbol_set_value_expression): Likewise.
	(symbol_set_frag, symbol_get_frag): Likewise.
	(symbol_mark_used, symbol_clear_used, symbol_used_p): Likewise.
	(symbol_mark_used_in_reloc): Likewise.
	(symbol_clear_used_in_reloc, symbol_used_in_reloc_p): Likewise.
	(symbol_mark_mri_common, symbol_clear_mri_common): Likewise.
	(symbol_mri_common_p): Likewise.
	(symbol_mark_written, symbol_clear_written): Likewise.
	(symbol_written_p): Likewise.
	(symbol_mark_resolved, symbol_resolved_p): Likewise.
	(symbol_section_p, symbol_equated_p): Likewise.
	(symbol_constant_p): Likewise.
	(symbol_get_bfdsym, symbol_set_bfdsym): Likewise.
	(symbol_get_obj, symbol_set_obj): Likewise.
	(symbol_get_tc, symbol_set_tc): Likewise.
	(symbol_begin): Initialize local_hash.
	(print_symbol_value_1): Handle local symbols.
	(symbol_print_statistics): Print local symbol statistics.
	* symbols.h: Include "struc-symbol.h" if not BFD_ASSEMBLER.
	Declare new symbols.c functions.  Move many declarations here from
	struc-symbol.h.
	(SYMBOLS_NEED_BACKPOINTERS): Define if needed.
	* struc-symbol.h (SYMBOLS_NEED_BACKPOINTERS): Don't set.
	(struct symbol): Move bsym to make it clearly the first field.
	Remove TARGET_SYMBOL_FIELDS.
	(symbolS): Don't typedef.
	(struct broken_word): Remove.
	(N_TYPE_seg, seg_N_TYPE): Move to symbol.h.
	(SEGMENT_TO_SYMBOL_TYPE, N_REGISTER): Likewise.
	(symbol_clear_list_pointers): Likewise.
	(symbol_insert, symbol_remove): Likewise.
	(symbol_previous, symbol_append): Likewise.
	(verify_symbol_chain, verify_symbol_chain_2): Likewise.
	(struct local_symbol): Define.
	(local_symbol_converted_p, local_symbol_mark_converted): Define.
	(local_symbol_resolved_p, local_symbol_mark_resolved): Define.
	(local_symbol_get_frag, local_symbol_set_frag): Define.
	(local_symbol_get_real_symbol): Define.
	(local_symbol_set_real_symbol): Define.
	Define.
	* write.c (write_object_file): Call resolve_local_symbol_values.
	* config/obj-ecoff.h (OBJ_SYMFIELD_TYPE): Define.
	(TARGET_SYMBOL_FIELDS): Don't define.
	* config/obj-elf.h (OBJ_SYMFIELD_TYPE): Add local field.  If
	ECOFF_DEBUGGING, add ECOFF fields.
	(ELF_TARGET_SYMBOL_FIELDS, TARGET_SYMBOL_FIELDS): Don't define.
	* config/obj-multi.h (struct elf_obj_sy): Add local field.  If
	ECOFF_DEBUGGING, add ECOFF fields.
	(ELF_TARGET_SYMBOL_FIELDS, TARGET_SYMBOL_FIELDS): Don't define.
	(ECOFF_DEBUG_TARGET_SYMBOL_FIELDS): Don't define.
	* config/tc-mcore.h: Don't include struc-symbol.h.
	(TARGET_SYMBOL_FIELDS): Don't define.
	(struct mcore_tc_sy): Define.
	(TC_SYMFIELD_TYPE): Define.
	* Many files: Use symbolS instead of struct symbol.  Use new
	accessor functions rather than referring to symbolS fields
	directly.
	* read.c (s_mri_common): Don't add in value of line_label.
	* config/tc-mips.c (md_apply_fix): Correct parenthesization when
	checking for SEC_LINK_ONCE.
	* config/tc-sh.h (sh_fix_adjustable): Declare.
1999-06-03 00:29:48 +00:00
Ian Lance Taylor
2b47531bf9 * app.c (input_buffer): New static variable.
(app_push): Save saved_input in allocated buffer.
	(app_pop): Restored saved_input.
	(do_scrub_chars): Change get parameter to take char * and int as
	arguments.  Change GET macro to pass input_buffer to get
	function.  Don't save input into allocated buffer.
	* as.h (do_scrub_chars): Update declaration.
	* input-file.c (input_file_get): Change to take char * and int.
	Read data into passed in buffer.  Remove static buffer.
	* read.c (scrub_from_string): Change to take char * and int.  Copy
	data into passed in buffer.
1999-06-03 00:24:14 +00:00
Ian Lance Taylor
1af6dcd2bb * gasp.c (chunksize): New variable.
* macro.c (macro_expand_body): Call hash_jam with NULL rather than
	hash_delete
.CVS: ----------------------------------------------------------------------
1999-06-03 00:23:27 +00:00
Ian Lance Taylor
54d22525bb * hash.h: Neaten. Declare hash_traverse.
* hash.c: Complete rewrite based on BFD hashing code.
1999-06-02 23:22:50 +00:00
Richard Henderson
4305932a21 Jason Merrill <jason@yorick.cygnus.com>
* scripttempl/v850.sc: Add initp support.
1999-06-02 20:47:23 +00:00
Richard Henderson
2581206fa2 Shouldn't have escaped. 1999-06-02 20:33:41 +00:00
Mark Mitchell
d2905643ff * elf32-mips.c (elf_mips_howto_table): Add R_MIPS_JALR.
* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
	(mips_elf64_howto_table_rela): Likewise.
1999-06-02 18:17:59 +00:00
Mark Mitchell
42fdc50906 * elf32-mips.c (elf_mips_howto_table): Add R_MIPS_JALR.
* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
	(mips_elf64_howto_table_rela): Likewise.
	* elfcode.h (elf_slurp_reloc_table_from_section): New function,
	split out from ...
	(elf_slurp_reloc_table): Here.  Use it to handle the case where a
	single section has two associated relocation sections.
1999-06-02 18:16:48 +00:00
Richard Henderson
6e3db71c77 Stu Grossman <grossman@babylon-5.cygnus.com>
* dwarf.h: Add LANG_JAVA.
        * dwarf2.h: Add DW_LANG_Java.
1999-06-02 18:14:14 +00:00
Mark Mitchell
6c8cb66eb1 Update copyright dates. 1999-06-02 16:31:16 +00:00
Richard Henderson
c71c54c969 Update copyright. 1999-06-02 16:11:43 +00:00
Richard Henderson
9d8cefa978 Mark Salter <msalter@cygnus.com>
* coffcode.h (coff_set_alignment_hook): Set lma from s_vaddr if
        COFF_WITH_PE defined.
1999-06-02 15:36:48 +00:00
Nick Clifton
c9fca91dfb Rename interworking functions to avoid a name space collision 1999-06-02 14:27:10 +00:00
Nick Clifton
46d23b7c90 Rename ARM interworking functions to avoid a name space collision 1999-06-02 14:26:01 +00:00
Mark Mitchell
bf572ba0b9 * elf-bfd.h (elf_backend_data): Remove use_rela_p. Add
may_use_rel_p, may_use_rela_p, default_use_rela_p.
	(bfd_elf_section_data): Add use_rela_p.
	* elf.c (bfd_section_from_shdr): Set use_rela_p appropriately.
	(_bfd_elf_new_section_hook): Likewise.
	(elf_fake_sections): Use may_use_rela_p, etc., instead of
	use_rela_p.
	(_bfd_elf_copy_private_section_data): Copy use_rela_p.
	* elfcode.h (write_relocs): Determine whether or not use rela
	relocs based on the relocation section header.
	* elflink.c (_bfd_elf_create_dynamic_sections): Use default_use_rela_p
	instead of use_rela_p.
	* elfxx-target.h (elf_backend_may_use_relp): New macro.
	(elf_backend_may_use_rela_p): Likewise.
	(elf_backend_default_use_rela_p): Likewise.
	(elfNN_bed): Use them.
1999-06-02 13:01:04 +00:00
Richard Henderson
3fe702fddf * hosts/alphalinux.h (TRAD_CORE_EXTRA_SIZE_ALLOWED): Expand to 4096. 1999-06-02 12:39:44 +00:00
Richard Henderson
d8bcc1ac10 * dlltool.c (gen_exp_file): Revert 19990411 change. 1999-06-02 12:37:48 +00:00
Richard Henderson
cd785be602 Forgot to commit. 1999-06-02 12:29:27 +00:00
Mark Mitchell
3f830999e3 * reloc.c (BFD_RELOC_MIPS_SUB): New relocation.
(BFD_RELOC_MIPS_GOT_PAGE): Likewise.
	(BFD_RELOC_MIPS_GOT_OFST): Likewise.
	(BFD_RELOC_MIPS_GOT_DISP): Likewise.
	* bfd-in2.h: Regenerated.
	* libbfd.h: Likewise.
	* elf32-mips.c (mips_info_to_howto_rela): New function.
	(USE_REL): Adjust for new conventions.
	(MINUS_ONE): New macro.
	(elf_mips_howto_table): Add R_MIPS_SUB.
	(mips_r): Add entries for MIPS_SUB, MIPS_GOT_PAGE, MIPS_GOT_OFST,
	and MIPS_GOT_DISP.
	(mips_elf_final_write_processing): Set sh_link, not sh_info, for a
	.MIPS.content section.
	(_bfd_mips_elf_fake_sections): Treat all sections that begin
	with .MIPS.content as .MIPS.content sections.  Set
	SHF_MNIPS_NOSTRIP for such section.
	(elf_info_to_howto): Define to mips_info_to_howto_rela.
	* elf64-mips.c (mips_r):  Add entries for MIPS_SUB, MIPS_GOT_PAGE,
	MIPS_GOT_OFST, and MIPS_GOT_DISP.
1999-06-02 10:20:16 +00:00
Andreas Schwab
015985c9fc * vms-misc.c (_bfd_vms_hash_newfunc): Fix use of uninitialized
variable.
1999-06-02 02:56:30 +00:00
Andreas Schwab
70f06c4ad0 * elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Avoid ambigous
`else'.
1999-06-02 02:53:21 +00:00
Jason Molenda
ac9a91a77c import gdb-1999-06-01 snapshot 1999-06-01 15:44:41 +00:00
Andreas Schwab
aa903cfb1b * readelf.c (process_relocs): Determine type of reloc from
DT_PLTREL and from section type.
1999-05-31 00:58:59 +00:00
Richard Henderson
af754d91f9 Cort Dougan <cort@cs.nmt.edu>
* config.guess (ppc-*-linux-gnu): Also use ld emul elf32ppclinux.
1999-05-30 16:06:14 +00:00
Richard Henderson
ec2f040d55 Cort Dougan <cort@attis.cs.nmt.edu>
* Makefile.am (ALL_EMULATIONS): Add eelf32ppclinux.o.
        * configure.tgt (powerpc-*-linux-gnu): Use it.
        * emulparams/elf32ppclinux.sh: New file.
1999-05-30 15:55:31 +00:00
Nick Clifton
2ef994e0d6 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_relocate_section): Reinstate change of
	1993-03-25 (!!).  Take into account the bitmasks for the reloc so
	the addend does not overflow into the rest of the word
1999-05-30 11:36:53 +00:00
Ian Lance Taylor
511ab9e95b * ld.texinfo (Options): Clarify that options which refer to files
must be properly ordered.
1999-05-29 19:43:33 +00:00
Nick Clifton
ba96a88f08 Fix implementation of R_ARM_PC24 and R_ARM_THM_PC22 relocs to conform to spec. 1999-05-29 11:05:22 +00:00
Nick Clifton
7ca69e9e10 Implement new command line option for new ABI: -p which prevents the ARM code
from exhibiting any knowledge of the length of the processor's pipeline.
1999-05-29 10:57:44 +00:00
Nick Clifton
ab5e779453 Display unknown values detected in ELF program header. 1999-05-29 10:51:14 +00:00
Nick Clifton
661e4995b2 Include pipeline offset in addend unless dealing with an old ABI. 1999-05-29 10:47:20 +00:00
Nick Clifton
3d4920d7c3 Define ELFOSABI_ARM 1999-05-29 10:42:45 +00:00
Nick Clifton
ccf04c82c7 fix typo. 1999-05-29 09:09:39 +00:00
Nick Clifton
04a866f231 remove spurious code. 1999-05-28 17:24:21 +00:00
Doug Evans
d9a622197d -Wchar-subscripts cleanup
* listing.c (listing_newline): Use unsigned char variable, so
 	calls to isascii,iscntrl are correct.
	* atof-generic.c (atof_generic): Cast arg to isdigit, et. al. with
	(unsigned char).
	* ecoff.c (ecoff_directive_ent,ecoff_stab): Ditto.
	* config/obj-elf.c (obj_elf_vtable_inherit): Ditto.
	* config/tc-mips.c (mips_ip,mips16_ip): Ditto.
	(my_getSmallExpression,get_number,s_mips_ent): Ditto.
1999-05-28 15:28:56 +00:00
Jeff Law
cd8a80baf2 * hppa.h (pa_opcodes): Move integer arithmetic instructions after
integer logical instructions.
1999-05-28 14:26:52 +00:00
Nick Clifton
e6c51ed4df Initialise EI_OSABI and EI_ABIVERSION fields of e_ident array.
Add ability for backends to process program and section headers after they
have been created.
1999-05-28 13:24:33 +00:00
Nick Clifton
229cf42b33 fix typo. 1999-05-28 10:53:04 +00:00
Nick Clifton
b3043ee4e2 Minor formatting changes. 1999-05-28 10:50:29 +00:00
Nick Clifton
e15e4a6398 Update comment 1999-05-28 10:47:30 +00:00
Nick Clifton
9c19a80986 Better coping with different reloc types. 1999-05-28 10:14:11 +00:00
Ian Lance Taylor
633fd09f3c * configure.in: Check whether getuid and getgid exist.
* archive.c: Define getuid and getgid as macros if HAVE_GETUID or
	HAVE_GETGID are not defined, respectively.
	(bfd_write_armap): Don't special case on _WIN32 for getuid and
	getgid.
	* configure.host: Set ac_cv_func_get{ug}id for *-*-windows*.
	* configure, config.in: Rebuild.
1999-05-27 22:48:53 +00:00
Ian Lance Taylor
6da466c730 1999-05-28 Torbjorn Granlund <tege@matematik.su.se>
* config/tc-m68k.c (m68k_ip): Check for disallowed index register
	width for Coldfire.
	(arch_coldfire_p): New #define.
	(m68k_ip, m68k_init_after_args): Use arch_coldfire_p.
1999-05-28  Linus Nordberg  <linus.nordberg@canit.se>
	* config/tc-m68k.c (install_operand): Add places `n', `o'.
	* config/tc-m68k.c (m68k_ip): Add formats `E', `G', `H'.
	(install_operand): Add place `N'.
	(init_table): Add registers ACC, MACSR, MASK.
	* config/m68k-parse.h (m68k_register): Add ACC, MACSR, MASK.
	* config/tc-m68k.c: Change mcf5200 --> mcf.
	(archs): Add mcf5206e, mcf5307.
	(m68k_ip): Add format `u'.
	(install_operand): Add place `m', `M', `h'.
	(init_table): Add upper/lower registers.
	* config/m68k-parse.h (m68k_register): Add upper/lower registers.
1999-05-27 22:36:51 +00:00
Ian Lance Taylor
461d5ddde0 1999-05-28 Linus Nordberg <linus.nordberg@canit.se>
* m68k-opc.c: Rename MACL/MSACL to MAC/MSAC.  Add MACM/MSACM.  Add
	MOVE MACSR,CCR.
	* m68k-dis.c (fetch_arg): Add places `n', `o'.
	* m68k-opc.c: Add MSAC, MACL, MOVE to/from ACC, MACSR, MASK.
	Add mcf5206e to appropriate instructions.
	Add alias for MAC, MSAC.
	* m68k-dis.c (print_insn_arg): Add formats `E', `G', `H' and place
	`N'.
	* m68k-opc.c (m68k_opcodes): Add divsw, divsl, divuw, divul, macl,
	macw, remsl, remul for mcf5307.  Change mcf5200 --> mcf.
	* m68k-dis.c: Add format `u' and places `h', `m', `M'.
1999-05-27 22:33:14 +00:00
Ian Lance Taylor
1fca749bd1 1999-05-28 Linus Nordberg <linus.nordberg@canit.se>
* m68k.h: Document new formats `E', `G', `H' and new places `N',
	`n', `o'.
	* m68k.h: Define mcf5206e, mcf5307, mcf.  Document new format `u'
	and new places `m', `M', `h'.
1999-05-27 22:31:03 +00:00
Ian Lance Taylor
0d59e34570 * binutils-all/readelf.h: Update for changes of 1999-04-08. 1999-05-27 22:05:26 +00:00
Ian Lance Taylor
63fcb9e946 * readelf.c: Include "elf/i960.h".
(dump_relocations): Handle EM_960.
1999-05-27 22:04:40 +00:00
Ian Lance Taylor
0dbfb37cce * gas/vtable/vtable.exp: Don't run test for i960 yet. 1999-05-27 21:58:10 +00:00
Ian Lance Taylor
bedf545c12 1999-05-28 Martin Dorey <mdorey@madge.com>
* config/tc-i960.c: Several minor changes to add ELF and
	BFD_ASSEMBLER support.
	* config/tc-i960.h: Likewise.
	* configure.in (i960-*-elf*): New target.
	* aclocal.m4, configure: Rebuild.
1999-05-27 21:57:48 +00:00
Ian Lance Taylor
5379904c27 rebuild dependencies 1999-05-27 21:54:35 +00:00
Ian Lance Taylor
0ccf812a6e 1999-05-28 Martin Dorey <mdorey@madge.com>
* configure.tgt (i960-*-elf*): New target.
	* emulparams/elf32_i960.sh: New file.
	* Makefile.am (ALL_EMULATIONS): Add eelf32_i960.o.
	(eelf32_i960.c): New target.
	* Makefile.in: Rebuild.
1999-05-27 21:49:21 +00:00
Ian Lance Taylor
dc93fc57a9 fix copyrights 1999-05-27 21:44:39 +00:00
Ian Lance Taylor
b2ef150dc1 1999-05-28 Martin Dorey <mdorey@madge.com>
* elf32-i960.c: New file.
	* elf.c (prep_headers): Handle bfd_arch_i960.
	* targets.c (bfd_target_vector): Add &bfd_elf32_i960_vec.
	* config.bfd (i960-*-elf*): New target.
	* configure.in (bfd_elf32_i960_vec): New target vector.
	* Makefile.am (BFD32_BACKENDS): Add elf32-i960.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-i960.c.
	* Makefile.in, aclocal.m4, configure: Rebuild.
1999-05-27 21:42:14 +00:00
Ian Lance Taylor
2d1d084fef rebuild 1999-05-27 21:40:25 +00:00
Ian Lance Taylor
82599b0c2e * i960.h: New file. 1999-05-27 21:29:05 +00:00
Ian Lance Taylor
c2c40d939b break long line 1999-05-27 20:48:12 +00:00
Nick Clifton
5f97aa0c8a Add support for BFD_RELOC_ARM_PLT32 1999-05-27 07:41:14 +00:00
Jeff Law
aa00890758 * hppa.h (pa_opcodes): Add several processor specific system
instructions.
1999-05-27 03:19:32 +00:00
Andreas Schwab
8066d1a283 * objcopy.c (copy_archive): Preserve dates of archive members if
requested.
1999-05-27 03:16:15 +00:00
Andreas Schwab
1b228002a1 * readelf.c (dump_relocations): Always print the addend on RELA
systems even if there is no symbol.
	(process_program_headers): Reset dynamic_size before looping
	through the program headers.
	(process_version_sections): Cast sh_offset to unsigned long for
	printing in case bfd_vma is wider.
	(process_symbol_table): Use get_symbol_index_type when printing
	st_shndx.
1999-05-27 03:02:23 +00:00
Nick Clifton
a13cba0d36 Use correct template 1999-05-26 17:23:32 +00:00
Jeff Law
e26b85f069 * hppa.h (pa_opcodes): Add second entry for "comb", "comib",
"addb", and "addib" to be used by the disassembler.
1999-05-26 16:04:11 +00:00
Nick Clifton
780a67af1e Applied patches from Philip Blundell <pb@nexus.co.uk>, to improve PIC support. 1999-05-26 08:27:38 +00:00
Jason Molenda
392a587b05 import gdb-1999-05-25 snapshot 1999-05-25 18:09:09 +00:00
DJ Delorie
751d21b5b9 * windres.c: add verbose option
(main): process verbose option
* resrc.c (look_for_default): new.  Look for the default
preprocessor in a given location.
(read_rc_file): for foo/bar-windres, look for foo/bar-gcc,
foo/gcc (in case of foo/windres), and then gcc (the old default).
1999-05-25 12:10:27 +00:00
Catherine Moore
fa0e42e457 * coff-arm.c (coff_arm_relocate_section): Don't emit
base file entries for pc-relative values.
1999-05-25 11:56:16 +00:00
DJ Delorie
93dfcdf061 * peicode.h (coff_swap_sym_in): When we create the actual section
to reflect the not-there section C_SECTION symbols refer to,
change the symbol class to C_STAT as the section is now really
there.
1999-05-25 11:37:40 +00:00
Alan Modra
e1b283bbb7 ÿ
Fiz i386-iaout breakage introduced by last patch.
1999-05-24 18:25:27 +00:00
Alan Modra
40c62b2548 è
Fiz i386-iaout breakage introduced by last patch.
1999-05-24 18:25:25 +00:00
Nick Clifton
6c3175b08d Updated to match latest version in EGCS 1999-05-24 15:20:21 +00:00
Nick Clifton
31ce062864 1999-05-24 Philip Blundell <philb@gnu.org>
* emultempl/armelf.em (before_parse): Set config.dynamic_link and
 	config.has_shared.
	* emulparams/armelf.sh (GENERATE_SHLIB_SCRIPT): Define.
	* emulparams/armelf_linux.sh (GENERATE_SHLIB_SCRIPT): Likewise
1999-05-24 12:49:30 +00:00
Nick Clifton
db65e864b3 1999-05-24 Philip Blundell <pb@nexus.co.uk>
* elf32-arm.h (elf32_arm_relocate_section): Undo change of
 	1999-03-25
1999-05-24 10:06:39 +00:00
Jason Molenda
5ce7ce3191 Sync up with Cygnus CVS repository (cvs import doesn't handle these
automatically, alas.  This cleanpu must be automated in the near future).
Tue Mar  9 19:25:11 1999  Stan Shebs  <shebs@andros.cygnus.com>
        * h8-cfg.texi: Remove, hasn't been used in years.
1999-05-10  Martin Hunt  <hunt@cygnus.com>
        * debugify.c, debugify.h: Removed because they are no
        longer used.
Tue Mar 16 15:29:04 1999  Stan Shebs  <shebs@andros.cygnus.com>
        * go32-xdep.c: Remove, no longer used by anything.
1999-05-23 20:02:56 +00:00
Nick Clifton
b8a40f5379 Accept 'sp' as a valid register name. 1999-05-22 14:49:51 +00:00
Nick Clifton
1220a72943 Add definitions related to shared objects (copied from elf32.em) 1999-05-22 09:55:50 +00:00
Jason Molenda
9e086581c7 import gdb-1999-0519 1999-05-19 19:58:41 +00:00
Catherine Moore
1ceea51453 * coff-arm.c (coff_arm_relocate_section): Account for
multiple glue sections when generating base file entries.
1999-05-19 10:20:12 +00:00
Nick Clifton
948221a8bd Use renamed ARM cpu flag bits 1999-05-19 07:27:14 +00:00
Nick Clifton
a74ffb029e Renumber cpu flag bits to avoid collision with PE flag bits 1999-05-19 07:25:59 +00:00
Andreas Schwab
3699964af7 * Makefile.am (ALL_EMULATIONS): Remove earmlinux.o and
earm26linux.o, add earmelf_linux.o and earmelf_linux26.o.
	* Makefile.in: Regenerated.
1999-05-19 03:50:52 +00:00
Nick Clifton
8535ca756a Add xfail for mcore-elf 1999-05-17 09:46:52 +00:00
Nick Clifton
2481b576e9 Update to match lattest assembler/objdump outpuyt 1999-05-17 09:26:37 +00:00
Alan Modra
2da11e11a4 è
Add missing files from last change in gas/testsuite.
i386-dis.c: Catch a number of cases where an invalid modrm would result in
bogus disassembly.  const lots of places.
1999-05-17 08:35:42 +00:00
Alan Modra
5028a927f6 a
Add missing files from last change in gas/testsuite.
i386-dis.c: Catch a number of cases where an invalid modrm would result in
bogus disassembly.  const lots of places.
1999-05-17 08:35:41 +00:00
Alan Modra
f4497960b0 Ø
Add missing files from last change in gas/testsuite.
i386-dis.c: Catch a number of cases where an invalid modrm would result in
bogus disassembly.  const lots of places.
1999-05-17 08:35:40 +00:00
Alan Modra
fa67f43732 è
Move bitfield overflow checks to after the md_apply_fix call in
fixup_segment so that md_apply_fix has a chance to modify value.
Handle 8 and 16-bit pcrel relocs for i386.
Prototypes and other minor code cleanups.
1999-05-17 03:21:52 +00:00
Alan Modra
93382f6dd7 n
Move bitfield overflow checks to after the md_apply_fix call in
fixup_segment so that md_apply_fix has a chance to modify value.
Handle 8 and 16-bit pcrel relocs for i386.
Prototypes and other minor code cleanups.
1999-05-17 03:21:50 +00:00
Alan Modra
ec0f0840fc *** empty log message *** 1999-05-17 03:21:49 +00:00
Alan Modra
6d4d30bb14 /
Move bitfield overflow checks to after the md_apply_fix call in
fixup_segment so that md_apply_fix has a chance to modify value.
Handle 8 and 16-bit pcrel relocs for i386.
Prototypes and other minor code cleanups.
1999-05-17 03:21:46 +00:00
Alan Modra
daa01f85d4 Move bitfield overflow checks to after the md_apply_fix call in
fixup_segment so that md_apply_fix has a chance to modify value.
Handle 8 and 16-bit pcrel relocs for i386.
Prototypes and other minor code cleanups.
1999-05-17 03:21:41 +00:00
Nick Clifton
1349dd650d reinstate uin_reloc_p 1999-05-16 14:16:52 +00:00
Nick Clifton
49e315b1a1 Add support for generating an mcore-elf dll. 1999-05-16 14:12:20 +00:00
Nick Clifton
06f2f02a3d Add mcore-elf support for shared libraries 1999-05-16 14:02:47 +00:00
Nick Clifton
7c2499d256 Add PLT relolcs 1999-05-16 13:57:59 +00:00
Nick Clifton
36797d47c9 Add support for mcore RVA relocs. 1999-05-15 15:38:13 +00:00
Nick Clifton
661016bb24 Add support for mcore to dlltool. 1999-05-15 15:25:22 +00:00
Nick Clifton
daa8de753e Defined rva relocations. 1999-05-15 15:13:18 +00:00
Andreas Schwab
97eaf9de67 * elf32-arm.h (elf32_arm_relocate_section): Fix operator
precedence between bit-and and comparison.
1999-05-14 02:02:26 +00:00
Andreas Schwab
19b341776d * config/atof-ieee.c (gen_to_words): Correctly round a
denormalized number.  Fix off-by-one in range checking for
	exponent in a denormal.
1999-05-14 01:53:28 +00:00
Richard Henderson
de24ad2106 Joel Sherrill (joel@OARcorp.com)
* configure.tgt (i386-*-rtemself*, sh-*-rtemself*): New targets.
        (mips*el-*-rtems*, powerpcle-*-rtems*): New targets.
1999-05-13 09:49:48 +00:00
Richard Henderson
53f3de9893 Joel Sherrill (joel@OARcorp.com)
* configure.in (i386-*-rtemself*, sh-*-rtemself*): New targets.
1999-05-13 09:49:29 +00:00
Richard Henderson
2e9a84c864 Joel Sherrill (joel@OARcorp.com)
* config.bfd (i[3456]86*-*-rtems*, m68k*-*-rtems*): Added to
        list of target formats (targ_selvecs).
        (i[3456]86*-*-rtemself*, mips*el-*-rtems*): New targets.
        (powerpcle*-*rtems*, sh-*-rtemself*): New targets.
1999-05-13 09:49:09 +00:00
Alan Modra
c608c12e5e P
i386 PIII SIMD support, remove ReverseRegRegmem kludge
tidy a few things in i386 intel mode disassembly
1999-05-13 06:00:30 +00:00
Alan Modra
3afcee8ec9 X
i386 PIII SIMD support, remove ReverseRegRegmem kludge
tidy a few things in i386 intel mode disassembly
1999-05-13 06:00:14 +00:00
Alan Modra
3f4438abfd ÿ
i386 PIII SIMD support, remove ReverseRegRegmem kludge
tidy a few things in i386 intel mode disassembly
1999-05-13 06:00:13 +00:00
Alan Modra
578ec497b6 i386 PIII SIMD support, remove ReverseRegRegmem kludge
tidy a few things in i386 intel mode disassembly
1999-05-13 06:00:10 +00:00
DJ Delorie
1a62478879 * rclex.l: add code to suppress certain output from cpp, replace
all returns with MAYBE_RETURN
	(MAYBE_RETURN): new, implement the suppression by returning
	IGNORED_TOKEN as needed.
	(cpp_line): remember which file we're in, mark data from included
	*.h files for suppression.
	* rcparse.y (input): allow IGNORED_TOKEN outside of known constructs
1999-05-12 22:03:10 +00:00
DJ Delorie
c6c37250e9 1999-05-10 DJ Delorie <dj@cygnus.com>
* scripttempl/pe.sc: Specify the output arch, which Ian says is
	the Right Thing to do.
	* emultempl/pe.em: various changes to parameterize the
	target-specific information.
	(gld_i386pe_after_open): Detect and fix MS import libraries
	by renaming the member objects (which are all named the same).
	* pe-dll.c: various changes to parameterize the target-specific
	information.
	(generate_reloc): support relocs more generically to allow for
	expansion.
	(pe_exe_build_sections): new; used to add .relocs to .exes
	(pe_exe_fill_sections): ditto
1999-05-11 21:06:50 +00:00
DJ Delorie
09cda596de 1999-05-10 DJ Delorie <dj@cygnus.com>
* windres.c (quot): Quote shell metacharacters in a string
	(main): quote parameters to cpp that might have metacharacters in
	them.  Allow -D as an alias for --define to allow for sharing make
	macros with gcc.
	* objdump.c (dump_reloc_set): don't core if howto->name is NULL
	* Makefile.am: Give rescoff.c a cpu-specific -D so it can set
	the correct BFD.
	* Makefile.in: ditto
	* rescoff.c (write_coff_file): Set the correct BFD
1999-05-11 21:06:16 +00:00
DJ Delorie
ec0ef80e9f * ecoff.c (_bfd_ecoff_write_armap): give the symtab element a
reasonable mode until "ar x" is smart enough to skip it (fixes
	gcc/libgcc.a builds on mips-ecoff targets
	* coffcode.h (styp_to_sec_flags): Explain how COMDATs are supposed
	to work.  Hack to support MS import libraries, which use different
	COMDAT types than GNU.
	(coff_slurp_symbol_table): C_SECTION symbols are local; they refer
	to implied zero-length sections (see peicode below)
	* coffgen.c (coff_get_normalized_symtab): Properly read long MS
	filename symbols, which use one *or more* auxents.
	* coffswap.h (coff_swap_aux_in): ditto
	* peicode.h (coff_swap_sym_in): Build the implied zero-length
	sections
1999-05-11 21:05:44 +00:00
DJ Delorie
69f868fa5d * ld-srec/srec.exp: Do not run tests for PE based ports. 1999-05-11 20:31:53 +00:00
Stan Shebs
b5a0ac7029 import gdb-1999-05-10 1999-05-11 20:29:07 +00:00
Jeff Law
5c746d907d * elf32-v850.c (v850_elf_howto_table): Make partial_inplace false
for all relocations.
1999-05-11 14:57:28 +00:00
Stan Shebs
cd0fc7c3eb import gdb-1999-05-10 1999-05-11 13:35:55 +00:00
Jim Blandy
e9868447b4 *** empty log message *** 1999-05-11 12:42:30 +00:00
Jim Blandy
7d0e3be3b1 * cplus-dem.c (main): Use table lookup to distinguish identifier
characters from non-identifier characters.
(standard_symbol_alphabet, hp_symbol_alphabet): New functions.
1999-05-11 12:42:12 +00:00
Catherine Moore
626e01051a 1999-05-10 Catherine Moore <clm@cygnus.com>
* emulttempl/pe.em (gld_${EMULATION_NAME}_after_open):
	Check for TARGET_IS_arm_epoc_pe.
	(gld_${EMULATION_NAME}_before_allocation): Likewise.
1999-05-10 18:30:21 +00:00
Catherine Moore
ba1b93173e * bfd-in.h (bfd_arm_allocate_interworking_sections): Static
if COFF_IMAGE_WITH_PE.
        (bfd_arm_process_before_allocation): Likewise.
        (bfd_arm_get_bfd_for_interworking): Likewise.
        * coff-arm.c: Likewise.
        * bfd-in2.h: Regenerate.
        * configure.in (armpe_little_vec): Remove coff-arm.lo.
        (armpe_big_vec): Likewise.
        * configure: Rebuild.
1999-05-10 18:27:37 +00:00
Nick Clifton
c1f6bc0323 Check for period after .rel{a} when detecting reloc sections. 1999-05-10 08:36:58 +00:00
Richard Henderson
4dec4d4e74 * ldlang.c (walk_wild, walk_wild_file, walk_wild_section,
output_section_callback, gc_section_callback): New functions for
     generic section walks.
     (wild, lang_gc_wild): Use walk_wild.
     (wild_file, lang_gc_wild_file): Deleted. Common logic moved to
     walk_wild_file.
     (wild_section, lang_gc_wild_section): Deleted. Common logic moved
     to walk_fild_section.  Unique logic moved into callbacks
     output_section_callback and gc_section_callback.
1999-05-08 23:40:58 +00:00
Richard Henderson
d0e9a01c12 * config/tc-ppc.c (md_parse_option): Recognize -mppc64bridge.
(md_begin): Allow ppc32 insns in ppc64bridge mode.
        (ppc_insert_operand): Accept SIGNOPT in ppc64 mode.
1999-05-08 23:31:09 +00:00
Richard Henderson
45c18104f8 * ppc.h (PPC_OPCODE_64_BRIDGE): New. 1999-05-08 23:28:34 +00:00
Nick Clifton
886851536e Use .short to display unidentified instructions 1999-05-07 09:14:56 +00:00
Nick Clifton
3f230321da restore mcore files (Duh!) 1999-05-07 07:57:25 +00:00
Nick Clifton
b23f908b61 Replace assert (about endianism) with an error message 1999-05-07 07:44:11 +00:00
Nick Clifton
71acc4e8d5 REstore mcore support (duh!) 1999-05-07 07:40:05 +00:00
Nick Clifton
bb3596ae84 fix output format. 1999-05-07 07:34:06 +00:00
Nick Clifton
09a3f5d4e3 restore. (Duh!) 1999-05-07 07:33:44 +00:00
Richard Henderson
83183c0c36 * config/tc-i386.c (i386_immediate): Skip whitespace before
complaining about junk after expression.
        (i386_displacement): Likewise.
1999-05-06 23:16:36 +00:00
Richard Henderson
33fbbfbc00 * configure.in (sys/resource.h): Add to AC_CHECK_HEADERS list.
* getruntime.c: Only attempt to include sys/resource.h and
        use getrusage if both HAVE_GETRUSAGE and HAVE_SYS_RESOURCE_H
        are defined.
1999-05-06 20:59:17 +00:00
Richard Henderson
03987ceda1 * symbols.c (symbol_find_base): Use memcpy instead of strcpy.
Don't copy before downcaseing.
1999-05-06 19:52:29 +00:00
Richard Henderson
7fafc0fd27 Fred Fish <fnf@be.com>
* dwarf2.c (read_abbrevs): Change cast of dwarf_abbrev_buffer
        assignment from "unsigned char *" to "char *".
        (decode_line_info): Likewise for dwarf_line_buffer assignment.
1999-05-06 17:12:02 +00:00
Ian Lance Taylor
82716b788e * rename.c (smart_rename): Fix test of whether file exists. 1999-05-06 11:03:33 +00:00
Nick Clifton
a8a9050d4a Set display_endian based on target endianism. 1999-05-06 07:41:56 +00:00
Nick Clifton
9484f685a5 Remove traces of mcore. 1999-05-06 07:20:24 +00:00
Nick Clifton
76f4998ad1 remove mentions of mcore. 1999-05-06 07:08:37 +00:00
Nick Clifton
87673fab32 Currently CYGNUS local 1999-05-06 07:07:55 +00:00
Stan Shebs
a4cb37cb10 import gdb-19990504 snapshot 1999-05-05 21:45:13 +00:00
Catherine Moore
b890a73569 * dlltool.c (interwork): Remove.
(arm_interwork_jtab): Use bx insn.
        (thumb_jtab): Likewise.
        (MARM_INTERWORK): New machine type.
        (rvaafter): Handle it.
        (rvabefore) Likewise.
        (asm_prefix): Likewise.
        (gen_exp_type): Check machine type instead of
        interwork flag.
        (make_one_lib_file): Likewise.
        (make_head): Likewise.
        (make_tail): Likewise.
        (usage): Update machine types.
        (main): Remove -interwork support.
1999-05-05 19:02:14 +00:00
Catherine Moore
b44267fd40 * coff-arm.c (coff_arm_relocate_section): Add one to
address of ARM_RVA32 thumb functions.
1999-05-05 18:56:25 +00:00
Stan Shebs
b83266a0e1 import gdb-19990504 snapshot 1999-05-05 14:45:51 +00:00
Catherine Moore
e1346c8d09 Remove extra copy of elf32_m68k_copy_private_bfd_data. 1999-05-05 11:34:29 +00:00
Catherine Moore
33c63f9db4 * readelf.c (get_machine_flags): Check for EF_CPU32.
(get_data_encoding): Fix typo.
1999-05-05 11:00:55 +00:00
Catherine Moore
0d96863f2b * tc-m68k.c: Include elf/m68k.h.
(m68k_elf_final_processing): New routine.
        * tc-m68k.h (elf_tc_final_processing m68k_elf_final_processing):
        Define.
1999-05-05 10:58:59 +00:00
Catherine Moore
5ce00b97b9 * m68k.h (EF_CPU32): Define. 1999-05-05 10:57:16 +00:00
Catherine Moore
9e1281c780 * elf32-m68k.c (elf32_m68k_set_private_flags): New.
(elf32_m68k_copy_private_bfd_data): New.
        (elf32_m68k_merge_private_bfd_data): New.
        (elf32_m68k_print_private_bfd_data): New.
        (CPU32_FLAG): Define.
        (PLT_CPU32_ENTRY_SIZE): Define.
        (elf_cpu32_plt0_entry): Declare.
        (elf_cpu32_plt_entry): Declare.
        (elf_m68k_adjust_dynamic_symbol): Generate cpu32 plt entries.
        (elf_m68k_finish_dynamic_symbol): Likewise.
        (elf_m68k_finish_dynamic_sections): Likewise.
        (elf_backend_plt_header_size): Remove definition.
        (bfd_elf32_bfd_copy_private_bfd_data): Define.
        (bfd_elf32_bfd_merge_private_bfd_data): Define.
        (bfd_elf32_bfd_set_private_flags): Define.
        (bfd_elf32_bfd_print_private_bfd_data): Define.
1999-05-05 10:56:18 +00:00
Stan Shebs
7c202dc7f5 Remove pregenerated info file 1999-05-04 18:52:32 +00:00
Jeff Law
90700a5341 * config/tc-hppa.c (md_apply_fix): Handle 22 bit fmt insn like a
17 bit fmt insn.
1999-05-03 09:26:28 +00:00
Jeff Law
c10067812f M
* som.c (som_fixup_formats): Fix comments for R_SHORT_PCREL_MODE
        and R_LONG_PCREL_MODE.
1999-05-03 09:12:29 +00:00
Jeff Law
ac79f2f399 ÿ
* som.c (som_fixup_formats): Fix comments for R_SHORT_PCREL_MODE
        and R_LONG_PCREL_MODE.
1999-05-03 09:12:28 +00:00
Richard Henderson
5b64ad42d3 This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
1999-05-03 07:29:11 +00:00
Richard Henderson
252b5132c7 19990502 sourceware import 1999-05-03 07:29:11 +00:00
Stan Shebs
2d514e6f36 import gdb-19990422 snapshot 1999-04-27 01:33:01 +00:00
Stan Shebs
8b0b198558 This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
1999-04-27 01:30:31 +00:00
Stan Shebs
aac4839284 import gdb-19990422 snapshot 1999-04-27 01:30:31 +00:00
Stan Shebs
e49d4fa61a import gdb-19990422 snapshot 1999-04-27 01:26:45 +00:00
Stan Shebs
7a292a7adf import gdb-19990422 snapshot 1999-04-26 18:34:20 +00:00
Stan Shebs
771578d160 import gdb-19990422 snapshot 1999-04-26 18:30:31 +00:00
Stan Shebs
1996fae846 This commit was generated by cvs2svn to track changes on a CVS vendor
branch.
1999-04-26 18:30:31 +00:00
Stan Shebs
0714f9bfa3 import gdb-19990422 snapshot 1999-04-26 18:25:51 +00:00
Stan Shebs
3dd8d9225d Not part of the sources 1999-04-26 17:34:15 +00:00
671 changed files with 54001 additions and 146008 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -143,6 +143,12 @@ Thu Dec 11 13:40:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
* dwarf2read.c (dwarf_decode_lines): Change type of address to
CORE_ADDR.
Thu Dec 11 22:39:02 1997 Mark Alexander <marka@cygnus.com>
From change made to branch by Bob Manson <manson@cygnus.com>:
* tic80-tdep.c (tic80_push_arguments): The compiler always
passes structs by reference.
Thu Dec 11 14:28:01 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
* tracepoint.c (trace_find_command): don't error if going
@@ -1016,6 +1022,10 @@ Sat Aug 9 01:50:14 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
Fri Aug 8 21:35:44 1997 Mark Alexander <marka@cygnus.com>
* config/tic80/tic80.mt:
(GDBSERVER-DEPFILES, GDBSERVER_LIBS): Define for gdbserver.
(SIM): Remove -lm to prevent make errors.
* configure.tgt: add gdbserver to configdirs for tic80.
* gdbserver/utils.c (error): Change prototype to match defs.h.
* gdbserver/low-sim.c: Change simulator calls to use new interface.
* remote.c (remote_write_bytes): Include '$' at start of packet
@@ -1151,6 +1161,11 @@ Wed Aug 6 16:15:31 1997 Geoffrey Noer <noer@cygnus.com>
(_initialize_bdm_ppc): new
* config/powerpc/tm-ppc-eabi.h: add necessary CPU32 BDM defines
Tue Aug 5 23:56:14 1997 Mark Alexander <marka@cygnus.com>
* tic80-tdep.c (tic80_init_extra_frame_info): Allow zero
as a valid SP-relative offset of a saved register.
Wed Aug 6 00:24:08 1997 Jeffrey A Law (law@cygnus.com)
* hpread.c (hpread_read_struct_type): Use accessor macros rather
@@ -1654,6 +1669,15 @@ Wed May 14 08:58:55 1997 Jeffrey A Law (law@cygnus.com)
symbols to find the end of the prologue.
* mn10300-tdep.c (mn10300_skip_prologue): Likewise.
Wed May 14 12:04:49 1997 Andrew Cagney <cagney@b1.cygnus.com>
* config/tic80/tm-tic80.h (NUM_REGS): 38 not 37.
Mon May 12 11:35:04 1997 Mark Alexander <marka@cygnus.com>
* tic80-tdep.c, config/tic80/tm-tic80.h: First cut at getting
basic C80 features working.
Thu May 8 08:42:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
* configure.in (AC_TYPE_SIGNAL): Add
@@ -1695,6 +1719,10 @@ Thu May 1 02:28:21 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* printcmd.c (disassemble_command): Adjust low function bound
by FUNCTION_START_OFFSET.
Wed Apr 30 15:23:02 1997 Andrew Cagney <cagney@b1.cygnus.com>
* config/tic80/tm-tic80.h (BREAKPOINT): Set it to trap 73.
Mon Apr 28 21:25:32 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
* Makefile.in: Add rule for gnu-nat.o and i386gnu-nat.o (Gnu Hurd)
@@ -1762,6 +1790,15 @@ Thu Apr 24 13:31:10 1997 Jeffrey A Law (law@cygnus.com)
* mn10300-tdep.c (mn10300_analyze_prologue): Check for a return
insn at "pc", not "fi->pc".
Thu Apr 24 16:11:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
* config/tic80/tm-tic80.h (NUM_REGS): Four 64bit accumulators.
(REGISTER_BYTE, REGISTER_RAW_SIZE, REGISTER_SIZE,
MAX_REGISTER_RAW_SIZE, REGISTER_VIRTUAL_TYPE): Adjust.
(NPC_REGNUM): Tic80 has a delay slot.
(R0_REGNUM, Rn_REGNUM, An_REGNUM): For sim, provide base/bound for
register blocks.
Wed Apr 23 11:18:45 1997 Jeffrey A Law (law@cygnus.com)
* config/mn10200/tm-mn10200.h (STORE_RETURN_VALUE): Pointers are
@@ -1780,6 +1817,10 @@ Tue Apr 22 11:58:15 1997 Fred Fish <fnf@cygnus.com>
(floatformat_from_doublest): Postswap output words for
the floatformat_littlebyte_bigwords format.
Mon Apr 21 22:44:47 1997 Andrew Cagney <cagney@b1.cygnus.com>
* config/tic80/tic80.mt (SIM): Link in simulator.
Tue Apr 22 09:02:10 1997 Stu Grossman (grossman@critters.cygnus.com)
* config/alpha/alpha-osf3.mh config/i386/{i386gnu linux}.mh
@@ -2102,6 +2143,11 @@ Mon Mar 31 14:55:53 1997 Ian Lance Taylor <ian@cygnus.com>
* configure.in: Generate .gdbinit from gdbinit.in.
* configure: Rebuild.
Sun Mar 30 12:28:24 1997 Fred Fish <fnf@cygnus.com>
* config/tic80/tic80.mt: Disable using the simulator
until it is ready.
Sat Mar 29 13:57:20 1997 Fred Fish <fnf@cygnus.com>
* COPYING: Install new version of file from FSF.
@@ -2111,6 +2157,10 @@ Fri Mar 28 18:33:41 1997 Ian Lance Taylor <ian@cygnus.com>
* Makefile.in (distclean): Remove .gdbinit.
Fri Mar 28 15:37:30 1997 Fred Fish <fnf@cygnus.com>
* config/tic80/tm-tic80.h (NAMES_HAVE_UNDERSCORE): Define.
Fri Mar 28 15:38:04 1997 Mike Meissner <meissner@cygnus.com>
* remote-sim.c (gdb_os_{,e}vprintf_filtered): Change stdarg type
@@ -2167,6 +2217,10 @@ Sat Mar 22 16:41:35 1997 Fred Fish <fnf@cygnus.com>
* remote-sim.c (simulator_command): Add comment about dealing with
NULL or empty args.
* Makefile.in (tic80-tdep.o): Add target.
* configure.tgt: Add tic80 case.
* tic80-tdep.c: New file.
* config/tic80/{tic80.mt, tm-tic80.h}: New files.
Sat Mar 22 02:48:11 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)

View File

@@ -3355,11 +3355,62 @@ Fri Dec 18 14:23:34 1998 Andrew Cagney <cagney@chook>
(mips_push_arguments, mips_push_dummy_frame, mips_pop_frame,
mips_extract_return_value): Update.
Fri Dec 18 12:56:56 1998 Andrew Cagney <cagney@chook>
* gdbarch.h (gdbarch_init_ftype): Pass struct gdbarch_info
by-value.
(struct gdbarch_info): Add struct gdbarch_tdep_info *tdep_info.
* gdbarch.c (gdbarch_update): Update.
* gdbarch.c (gdbarch_update): Add more tracing.
Thu Dec 17 02:15:40 1998 Andrew Cagney <cagney@chook.cygnus.com>
* configure.tgt (gdb_target): Identify mips64*vr4100*-*-elf* as
vr4100.
Thu Dec 17 02:01:58 1998 Andrew Cagney <cagney@chook>
* gdbtypes.c (_initialize_gdbtypes): Register all builtin types
with gdbarch so that they are updated whenever the architecture is
changed.
Thu Dec 17 01:58:16 1998 Andrew Cagney <cagney@chook>
* gdbarch.h (GDB_MULTI_ARCH): New macro, default to zero.
(current_gdbarch): Current architecture pointer.
* gdbarch.c (struct gdbarch): Define.
* gdbarch.h (TARGET_ARCHITECTURE, TARGET_BYTE_ORDER,
TARGET_LONG_BIT, TARGET_LONG_LONG_BIT, TARGET_PTR_BIT): When
multi-arch force definition.
* gdbarch.h, gdbarch.c (gdbarch_tdep, gdbarch_bfd_arch_info,
gdbarch_byte_order, {set,}gdbarch_long_bit,
{set,}gdbarch_long_long_bit, {set,}gdbarch_ptr_bit): Corresponding
functions.
* gdbarch.h (struct gdbarch_list, struct gdbarch_info,
gdbarch_init_ftype), gdbarch.c (register_gdbarch_init): Mechanism
for registering an architecture with GDB.
(gdbarch_list_lookup_by_info, gdbarch_alloc, gdbarch_update,
verify_gdbarch): Support functions.
* gdbarch.h (gdbarch_data_ftype), gdbarch.c
(register_gdbarch_data, gdbarch_data): Mechanism for maintaining
per-architecture pointers.
(init_gdbarch_data): Support functions.
* gdbarch.h (gdbarch_swap_ftype), gdbarch.c
(register_gdbarch_swap): Ditto for swapped memory regions.
(init_gdbarch_swap, swapout_gdbarch_swap, swapin_gdbarch_swap):
Support functions.
* gdbarch.c (set_endian_big, set_endian_little, set_architecture,
info_architecture, set_gdbarch_from_file): Hook in multi-arch
code by calling gdbarch_update.
(default_gdbarch): Default multi-arch vector. Use host's type
system for values.
Thu Dec 17 01:34:36 1998 Andrew Cagney <cagney@chook>
* gdbtypes.c (build_gdbtypes): New function.
@@ -4402,6 +4453,11 @@ Thu Oct 8 08:40:42 1998 Mark Alexander <marka@cygnus.com>
* rs6000-tdep.c (get_saved_register): Define only if
USE_GENERIC_DUMMY_FRAMES is defined.
Tue Oct 6 21:35:10 1998 Andrew Cagney <cagney@b1.cygnus.com>
* Makefile.in (DEPFILES): Add TARGET_OBS.
(TARGET_OBS): Defined by configure.
1998-10-06 Jason Molenda (jsm@bugshack.cygnus.com)
Eliminate a few warnings from the compiler.
@@ -5718,6 +5774,13 @@ Wed Apr 29 14:02:59 1998 David Taylor <taylor@texas.cygnus.com>
Wed Apr 29 10:20:40 1998 John Metzler <jmetzler@cygnus.com>
* nec4102rom.c: New file implements ROM monitor adapter for
nec-vr4102 board. This board hosts the vr4111 chip. This file
required extensions to the monitor_ops structure, hooks for wait
filter, new flags. This version does not support more than one
breakpoint and resuming after a breakpoint in 16 bit mode is
completely disfunctional.
* monitor.h: Defined additional hooks for dmpregs, configure_hooks
and wait_filter. These additions require that all ROM monitor
interfaces be recoded to initialize monitor ops using assignments
@@ -6481,6 +6544,9 @@ Wed Mar 4 01:39:08 1998 Ron Unrau <runrau@cygnus.com>
Tue Mar 3 17:19:08 1998 John Metzler <jmetzler@cygnus.com>
* config/mips/tm-vr4xxx.h: implements vr4111 as separate from 4300
* config/mips/vr4xxx.tm: implements vr4111 as separate from 4300
* configure.tgt: Recognise mips64vr4111-*-elf as vr4xxx
* dwarfread.c (read_tag_pointer_type): Pointer sizes now come from
TARGET_PTR_BIT rather from sizeof(char *) on host.

38
gdb/MAINTAINERS Normal file
View File

@@ -0,0 +1,38 @@
hp testsuite (gdb.hp) Jimmy Guo adl-debugger-wdb-merge-guru@cup.hp.com
d10v target Andrew Cagney cagney@cygnus.com
d30v target Andrew Cagney cagney@cygnus.com
mips target Andrew Cagney cagney@cygnus.com
powerpc target Andrew Cagney cagney@cygnus.com
generic arch support Andrew Cagney cagney@cygnus.com
target vector Andrew Cagney cagney@cygnus.com
remote.c Andrew Cagney cagney@cygnus.com
djgpp native DJ Delorie dj@cygnus.com
win32 host & native Chris Faylor cgf@cygnus.com
main (main.c, top.c) Elena Zannoni ezannoni@cygnus.com
readline Elena Zannoni ezannoni@cygnus.com
arm target Elena Zannoni ezannoni@cygnus.com
command interpreter Fernando Nasser fnasser@cygnus.com
generic symtabs Jim Blandy jimb@cygnus.com
dwarf readers Jim Blandy jimb@cygnus.com
elf reader Jim Blandy jimb@cygnus.com
stabs reader Jim Blandy jimb@cygnus.com
x86 linux native Jim Blandy jimb@cygnus.com
Scheme support Jim Blandy jimb@cygnus.com
svr4 shlibs (solib.c) Jim Blandy jimb@cygnus.com
hurd native Mark Kettenis kettenis@wins.va.nl
hpux, hp pa native Jeff Law law@cygnus.com
m32r target Michael Snyder msnyder@cygnus.com
tracing Michael Snyder msnyder@cygnus.com
threads Michael Snyder msnyder@cygnus.com
breakpoint.c Michael Snyder msnyder@cygnus.com
coff reader Philippe De Muyter phdm@macqel.be
macos host & native Stan Shebs shebs@cygnus.com
sds protocol Stan Shebs shebs@cygnus.com
rdi/adp protocol Stan Shebs shebs@cygnus.com
gdbserver Stan Shebs shebs@cygnus.com
documentation Stan Shebs shebs@cygnus.com
testsuite Stan Shebs shebs@cygnus.com
language support David Taylor taylor@cygnus.com
expression eval David Taylor taylor@cygnus.com
defs.h David Taylor taylor@cygnus.com
utils.c David Taylor taylor@cygnus.com

View File

@@ -1,4 +1,4 @@
# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998
# Copyright 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999
# Free Software Foundation, Inc.
# This file is part of GDB.
@@ -39,6 +39,7 @@ man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9
infodir = @infodir@
htmldir = $(prefix)/html
includedir = @includedir@
# This can be referenced by `INTLDEPS' as computed by CY_GNU_GETTEXT.
@@ -47,6 +48,8 @@ top_builddir = .
SHELL = @SHELL@
EXEEXT = @EXEEXT@
AWK = @AWK@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
@@ -87,6 +90,10 @@ YLWRAP = $(srcdir)/../ylwrap
# where to find makeinfo, preferably one designed for texinfo-2
MAKEINFO=makeinfo
MAKEHTML = texi2html
MAKEHTMLFLAGS = -glossary -menu -split_chapter
# Set this up with gcc if you have gnu ld and the loader will print out
# line numbers for undefined references.
#CC_LD=gcc -static
@@ -146,6 +153,8 @@ OPCODES_CFLAGS = -I$(OP_INCLUDE)
# should set this to list all the .o or .a files to be linked in.
SIM =
WIN32LIBS = @WIN32LIBS@
ENABLE_CFLAGS= @ENABLE_CFLAGS@
@@ -215,7 +224,7 @@ CDEPS = $(XM_CDEPS) $(TM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE) \
ADD_FILES = $(REGEX) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
ADD_DEPS = $(REGEX1) $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES)
VERSION=4.18
VERSION = 19990628
DIST=gdb
LINT=/usr/5bin/lint
@@ -249,6 +258,13 @@ ANNOTATE_OBS = annotate.o
@target_makefile_frag@
# End of host and target-dependent makefile fragments
# Possibly ignore the simulator. If the simulator is being ignored,
# these expand into SIM= and SIM_OBJ=, overriding the entries from
# target_makefile_frag
#
@IGNORE_SIM@
@IGNORE_SIM_OBS@
FLAGS_TO_PASS = \
"prefix=$(prefix)" \
"exec_prefix=$(exec_prefix)" \
@@ -265,6 +281,8 @@ FLAGS_TO_PASS = \
"DLLTOOL=$(DLLTOOL)" \
"RANLIB=$(RANLIB)" \
"MAKEINFO=$(MAKEINFO)" \
"MAKEHTML=$(MAKEHTML)" \
"MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \
"INSTALL=$(INSTALL)" \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
@@ -347,6 +365,7 @@ TARGET_FLAGS_TO_PASS = \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
"MAKEINFO=$(MAKEINFO)" \
"MAKEHTML=$(MAKEHTML)" \
"RUNTEST=$(RUNTEST)" \
"RUNTESTFLAGS=$(RUNTESTFLAGS)"
@@ -359,6 +378,7 @@ SFILES = ax-general.c ax-gdb.c bcache.c blockframe.c breakpoint.c \
ch-exp.c ch-lang.c ch-typeprint.c ch-valprint.c coffread.c \
command.c complaints.c corefile.c cp-valprint.c dbxread.c \
demangle.c dwarfread.c dwarf2read.c elfread.c environ.c eval.c \
event-loop.c event-top.c \
expprint.c f-exp.y f-lang.c f-typeprint.c f-valprint.c \
findvar.c gdbarch.c gdbtypes.c infcmd.c inflow.c infrun.c language.c \
jv-exp.y jv-lang.c jv-valprint.c jv-typeprint.c \
@@ -424,9 +444,11 @@ gdbcmd_h = gdbcmd.h $(command_h)
defs_h = defs.h xm.h tm.h nm.h config.status config.h gdbarch.h
top_h = top.h
inferior_h = inferior.h $(breakpoint_h)
tracepoint_h = tracepoint.h
ax_h = ax.h
event_loop_h = event-loop.h
# Header files that need to have srcdir added. Note that in the cases
# where we use a macro like $(gdbcmd_h), things are carefully arranged
@@ -482,7 +504,9 @@ TAGFILES_WITH_SRCDIR = $(HFILES_WITH_SRCDIR)
COMMON_OBS = version.o blockframe.o breakpoint.o findvar.o stack.o thread.o \
source.o values.o eval.o valops.o valarith.o valprint.o printcmd.o \
symtab.o symfile.o symmisc.o infcmd.o infrun.o command.o \
expprint.o environ.o gdbarch.o gdbtypes.o copying.o $(DEPFILES) \
expprint.o environ.o \
event-loop.o event-top.o \
gdbarch.o gdbtypes.o copying.o $(DEPFILES) \
mem-break.o target.o parse.o language.o $(YYOBJ) buildsym.o \
exec.o bcache.o objfiles.o minsyms.o maint.o demangle.o \
dbxread.o coffread.o elfread.o \
@@ -541,7 +565,7 @@ check: force
$(MAKE) $(TARGET_FLAGS_TO_PASS) check; \
else true; fi
info dvi install-info clean-info: force
info dvi install-info clean-info html install-html: force
@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
gdb.z:gdb.1
@@ -919,7 +943,7 @@ ALLDEPFILES = 29k-share/udi/udip2soc.c 29k-share/udi/udr.c \
convex-tdep.c convex-xdep.c \
core-sol2.c core-regset.c core-aout.c corelow.c \
dcache.c delta68-nat.c dpx2-nat.c dstread.c exec.c fork-child.c \
go32-xdep.c gould-tdep.c gould-xdep.c h8300-tdep.c h8500-tdep.c \
gould-tdep.c gould-xdep.c h8300-tdep.c h8500-tdep.c \
hp300ux-nat.c hppa-tdep.c hppab-nat.c hppah-nat.c \
hp-psymtab-read.c hp-symtab-read.c \
i386-tdep.c i386b-nat.c i386mach-nat.c i386v-nat.c \
@@ -929,7 +953,8 @@ ALLDEPFILES = 29k-share/udi/udip2soc.c 29k-share/udi/udr.c \
infptrace.c inftarg.c irix4-nat.c irix5-nat.c isi-xdep.c \
lynx-nat.c m3-nat.c \
m68k-tdep.c \
m88k-nat.c m88k-tdep.c mac-nat.c mips-nat.c \
m88k-nat.c m88k-tdep.c mac-nat.c \
mips-nat.c \
mips-tdep.c mipsm3-nat.c mipsv4-nat.c news-xdep.c \
nindy-share/Onindy.c nindy-share/nindy.c \
nindy-share/ttyflush.c nindy-tdep.c \
@@ -969,7 +994,7 @@ alpha-nat.o: alpha-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h
alpha-tdep.o: alpha-tdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
$(inferior_h) $(symtab_h) $(dis-asm.h) gdb_string.h
altos-xdep.o: altos-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h)
# OBSOLETE altos-xdep.o: altos-xdep.c $(defs_h) $(gdbcore_h) $(inferior_h)
annotate.o: annotate.c $(defs_h) annotate.h $(value_h) target.h $(gdbtypes_h)
@@ -1031,11 +1056,11 @@ command.o: command.c $(defs_h) $(expression_h) $(gdbcmd_h) \
complaints.o: complaints.c complaints.h $(defs_h) $(gdbcmd_h)
convex-tdep.o: convex-tdep.c $(wait_h) $(defs_h) $(gdbcmd_h) \
$(gdbcore_h) $(inferior_h)
# OBSOLETE convex-tdep.o: convex-tdep.c $(wait_h) $(defs_h) $(gdbcmd_h) \
# OBSOLETE $(gdbcore_h) $(inferior_h)
convex-xdep.o: convex-xdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
$(inferior_h)
# OBSOLETE convex-xdep.o: convex-xdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
# OBSOLETE $(inferior_h)
copying.o: copying.c $(defs_h) $(gdbcmd_h)
@@ -1092,6 +1117,11 @@ eval.o: eval.c $(bfd_h) $(defs_h) $(expression_h) $(frame_h) \
$(gdbtypes_h) language.h $(symtab_h) target.h $(value_h) \
gdb_string.h
event-loop.o: event-loop.c $(defs_h) $(top_h) $(event_loop_h)
event-top.o: event-top.c top.h $(readline_headers) \
$(defs_h) $(inferior_h) $(event_loop_h) terminal.h
exec.o: exec.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) $(inferior_h) \
target.h language.h gdb_string.h
@@ -1117,8 +1147,6 @@ gdbtypes.o: gdbtypes.c $(bfd_h) complaints.h $(defs_h) $(expression_h) \
gnu-nat.o: process_reply_S.h exc_request_S.h notify_S.h msg_reply_S.h \
exc_request_U.h msg_U.h gnu-nat.h
go32-xdep.o: go32-xdep.c
# OBSOLETE gould-tdep.o: gould-tdep.c $(OP_INCLUDE)/np1.h $(defs_h) $(frame_h) \
# OBSOLETE $(gdbcore_h) $(symtab_h)
@@ -1196,11 +1224,11 @@ jv-lang.o: jv-lang.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
jv-typeprint.o: jv-typeprint.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
$(value_h) $(INCLUDE_DIR)/demangle.h jv-lang.h gdb_string.h \
typeprint.h
typeprint.h c-lang.h
jv-valprint.o: jv-valprint.c $(bfd_h) $(defs_h) $(symtab_h) $(gdbtypes_h) \
$(expression_h) $(value_h) $(INCLUDE_DIR)/demangle.h valprint.h \
language.h jv-lang.h c-lang.h
language.h jv-lang.h c-lang.h gdbcore.h annotate.h
language.o: language.c $(bfd_h) $(defs_h) $(expression_h) $(frame_h) \
$(gdbcmd_h) $(gdbtypes_h) language.h parser-defs.h $(symtab_h) \
@@ -1236,7 +1264,7 @@ m88k-tdep.o: m88k-tdep.c $(defs_h) $(gdbcore_h) $(inferior_h)
mac-nat.o: mac-nat.c $(defs_h) gdb_string.h
main.o: main.c top.h $(defs_h) gdb_string.h
main.o: main.c top.h $(defs_h) gdb_string.h $(event_loop_h)
maint.o: maint.c $(defs_h) $(gdbcmd_h) $(gdbtypes_h) $(symtab_h) language.h \
$(expression_h) objfiles.h symfile.h
@@ -1297,7 +1325,7 @@ nindy-tdep.o: nindy-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(gdbcore_h)
ns32k-tdep.o: ns32k-tdep.c $(bfd_h) $(dis-asm_h) $(defs_h)
objfiles.o: objfiles.c $(bfd_h) $(defs_h) objfiles.h symfile.h \
$(symtab_h) gdb_string.h
$(symtab_h) gdb_string.h $(breakpoint_h)
osfsolib.o: osfsolib.c $(command_h) $(defs_h) $(gdbcore_h) $(inferior_h) \
objfiles.h gnu-regex.h symfile.h target.h language.h gdb_string.h
@@ -1504,7 +1532,7 @@ stabsread.o: stabsread.c $(bfd_h) $(INCLUDE_DIR)/aout/stab.def \
stack.o: stack.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) $(inferior_h) \
language.h target.h gdb_string.h
ax-general.o: ax-general.c $(ax_h) $(defs_h)
ax-general.o: ax-general.c $(ax_h) $(defs_h) $(value_h)
ax-gdb.o: ax-gdb.c $(defs_h) $(symtab_h) symfile.h $(gdbtypes_h) \
$(value_h) $(expression_h) $(command_h) $(ax_h) $(gdbcmd_h) ax-gdb.h
@@ -1533,14 +1561,16 @@ symtab.o: symtab.c call-cmds.h $(defs_h) $(expression_h) $(frame_h) \
tahoe-tdep.o: tahoe-tdep.c $(OP_INCLUDE)/tahoe.h $(defs_h) \
$(symtab_h)
tic80-tdep.o: tic80-tdep.c $(defs_h)
target.o: target.c $(bfd_h) $(defs_h) $(gdbcmd_h) $(inferior_h) \
objfiles.h symfile.h target.h gdb_string.h
thread.o: thread.c $(defs_h) gdbthread.h $(gdbcmd_h)
thread.o: thread.c $(defs_h) gdbthread.h $(gdbcmd_h) target.h
top.o: top.c top.h $(bfd_h) $(getopt_h) $(readline_headers) call-cmds.h \
$(defs_h) $(gdbcmd_h) $(inferior_h) language.h signals.h \
$(remote_utils_h) gdb_string.h
$(remote_utils_h) gdb_string.h $(event_loop_h)
typeprint.o: typeprint.c $(defs_h) $(expression_h) $(gdbcmd_h) \
$(gdbcore_h) $(gdbtypes_h) language.h $(symtab_h) target.h \
@@ -1616,4 +1646,5 @@ m2-exp.tab.o: m2-exp.tab.c $(defs_h) $(expression_h) $(gdbtypes_h) \
language.h m2-lang.h parser-defs.h $(symtab_h) $(value_h) \
$(bfd_h) objfiles.h symfile.h
### end of the gdb Makefile.in.

View File

@@ -1,6 +1,17 @@
What has changed in GDB?
(Organized release by release)
*** Changes since GDB-4.18:
* New targets
TI TMS320C80 tic80-*-*
* OBSOLETE configurations
Altos 3068 m68*-altos-*
Convex c1-*-*, c2-*-*
*** Changes in GDB-4.18:
* New native configurations

View File

@@ -4,8 +4,8 @@
This is GDB, the GNU source-level debugger.
A summary of new features is in the file `NEWS'.
See the GDB home page at http://www.cygnus.com/gdb/ for up to date
release information, mailing list links and archives, etc.
See the GDB home page at http://sourceware.cygnus.com/gdb/ for up to
date release information, mailing list links and archives, etc.
Unpacking and Installation -- quick overview
@@ -152,6 +152,8 @@ directory. That directory contains:
`gdb-4.18/readline'
source for the GNU command-line interface
NOTE: The readline library is compiled for use by GDB, but will
not be installed on your system when "make install" is issued.
`gdb-4.18/sim'
source for some simulators (ARM, D10V, SPARC, M32R, MIPS, PPC, V850, etc)

View File

@@ -9,6 +9,20 @@ General To Do List
This list is probably not up to date, and opinions vary about the
importance or even desirability of some of the items.
Document trace machinery.
Document overlay machinery.
Extend .gdbinit mechanism to specify name on command line, allow for
lists of files to load, include function of --tclcommand.
@c This does not work (yet if ever). FIXME.
@c @item --parse=@var{lang} @dots{}
@c Configure the @value{GDBN} expression parser to parse the listed languages.
@c @samp{all} configures @value{GDBN} for all supported languages. To get a
@c list of all supported languages, omit the argument. Without this
@c option, @value{GDBN} is configured to parse all supported languages.
Add an "info bfd" command that displays supported object formats,
similarly to objdump -i.
@@ -382,9 +396,6 @@ Why do we allow a target to omit standard register names (NO_STD_REGS
in tm-z8k.h)? I thought the standard register names were supposed to
be just that, standard.
Make DEBUG_EXPRESSIONS a maintenance command, dependent on
MAINTENANCE_COMMANDS.
Allow core file without exec file on RS/6000.
Make sure "shell" with no arguments works right on DOS.
@@ -466,6 +477,9 @@ Add a command for searching memory, a la adb. It specifies size,
mask, value, start address. ADB searches until it finds it or hits
an error (or is interrupted).
Remove the range and type checking code and documentation, if not
going to implement.
# Local Variables:
# mode: text
# End:

View File

@@ -337,7 +337,7 @@ examine_prologue (pc, rsize, msize, mfp_used)
to reach some "real" code. */
CORE_ADDR
skip_prologue (pc)
a29k_skip_prologue (pc)
CORE_ADDR pc;
{
return examine_prologue (pc, NULL, NULL, NULL);
@@ -510,7 +510,7 @@ init_extra_frame_info (frame)
but there isn't any way to tell the difference. */
init_frame_info (1, frame);
else {
/* We're in get_prev_frame_info.
/* We're in get_prev_frame.
Take care of everything in init_frame_pc. */
;
}
@@ -668,7 +668,7 @@ write_register_stack (memaddr, myaddr, actual_mem_addr)
The argument RAW_BUFFER must point to aligned memory. */
void
get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lvalp)
a29k_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lvalp)
char *raw_buffer;
int *optimized;
CORE_ADDR *addrp;

View File

@@ -35,7 +35,6 @@ fetch_inferior_registers (ignored)
struct ptrace_$data_regs_m68k inferior_registers;
struct ptrace_$floating_regs_m68k inferior_fp_registers;
struct ptrace_$control_regs_m68k inferior_control_registers;
extern char registers[];
ptrace_$init_control(&inferior_control_registers);
inferior_fp_registers.size = sizeof(inferior_fp_registers);
@@ -78,7 +77,6 @@ store_inferior_registers (regno)
struct ptrace_$data_regs_m68k inferior_registers;
struct ptrace_$floating_regs_m68k inferior_fp_registers;
struct ptrace_$control_regs_m68k inferior_control_registers;
extern char registers[];
ptrace_$init_control(&inferior_control_registers);
inferior_fp_registers.size = sizeof(inferior_fp_registers);

View File

@@ -1,17 +1,3 @@
/* Whether malloc must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_MALLOC
/* Whether realloc must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_REALLOC
/* Whether free must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_FREE
/* Whether strerror must be declared even if <string.h> is included. */
#undef NEED_DECLARATION_STRERROR
@TOP@
/* Define if pstatus_t type is available */
#undef HAVE_PSTATUS_T
@@ -88,6 +74,9 @@
name, as a C string. */
#undef TARGET_CPU_DEFAULT
/* Define if the simulator is being linked in. */
#undef WITH_SIM
/* Set to true if the save_state_t structure is present */
#define HAVE_STRUCT_SAVE_STATE_T 0

View File

@@ -493,7 +493,7 @@ AC_DEFUN(CY_AC_PATH_ITCLCONFIG, [
if test x"${no_itcl}" = x ; then
# we reset no_itcl in case something fails here
no_itcl=true
AC_ARG_WITH(itclconfig, [ --with-itclconfig directory containing itcl configuration (itclConfig.sh)],
AC_ARG_WITH(itclconfig, [ --with-itclconfig Directory containing itcl configuration (itclConfig.sh)],
with_itclconfig=${withval})
AC_MSG_CHECKING([for Itcl configuration])
AC_CACHE_VAL(ac_cv_c_itclconfig,[
@@ -619,7 +619,7 @@ AC_DEFUN(CY_AC_PATH_ITKCONFIG, [
if test x"${no_itk}" = x ; then
# we reset no_itk in case something fails here
no_itk=true
AC_ARG_WITH(itkconfig, [ --with-itkconfig directory containing itk configuration (itkConfig.sh)],
AC_ARG_WITH(itkconfig, [ --with-itkconfig Directory containing itk configuration (itkConfig.sh)],
with_itkconfig=${withval})
AC_MSG_CHECKING([for Itk configuration])
AC_CACHE_VAL(ac_cv_c_itkconfig,[
@@ -765,7 +765,7 @@ AC_DEFUN(CY_AC_PATH_TIXCONFIG, [
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)],
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,[

6
gdb/aclocal.m4 vendored
View File

@@ -505,7 +505,7 @@ AC_DEFUN(CY_AC_PATH_ITCLCONFIG, [
if test x"${no_itcl}" = x ; then
# we reset no_itcl in case something fails here
no_itcl=true
AC_ARG_WITH(itclconfig, [ --with-itclconfig directory containing itcl configuration (itclConfig.sh)],
AC_ARG_WITH(itclconfig, [ --with-itclconfig Directory containing itcl configuration (itclConfig.sh)],
with_itclconfig=${withval})
AC_MSG_CHECKING([for Itcl configuration])
AC_CACHE_VAL(ac_cv_c_itclconfig,[
@@ -631,7 +631,7 @@ AC_DEFUN(CY_AC_PATH_ITKCONFIG, [
if test x"${no_itk}" = x ; then
# we reset no_itk in case something fails here
no_itk=true
AC_ARG_WITH(itkconfig, [ --with-itkconfig directory containing itk configuration (itkConfig.sh)],
AC_ARG_WITH(itkconfig, [ --with-itkconfig Directory containing itk configuration (itkConfig.sh)],
with_itkconfig=${withval})
AC_MSG_CHECKING([for Itk configuration])
AC_CACHE_VAL(ac_cv_c_itkconfig,[
@@ -777,7 +777,7 @@ AC_DEFUN(CY_AC_PATH_TIXCONFIG, [
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)],
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,[

View File

@@ -59,6 +59,10 @@ static CORE_ADDR after_prologue PARAMS ((CORE_ADDR pc,
static int alpha_in_prologue PARAMS ((CORE_ADDR pc,
alpha_extra_func_info_t proc_desc));
static int alpha_about_to_return PARAMS ((CORE_ADDR pc));
void _initialize_alpha_tdep PARAMS ((void));
/* Heuristic_proc_start may hunt through the text section for a long
time across a 2400 baud serial line. Allows the user to limit this
search. */
@@ -108,8 +112,11 @@ static unsigned int heuristic_fence_post = 0;
*/
#define PROC_LOW_ADDR(proc) ((proc)->pdr.adr) /* least address */
/* These next two fields are kind of being hijacked. I wonder if
iline is too small for the values it needs to hold, if GDB is
running on a 32-bit host. */
#define PROC_HIGH_ADDR(proc) ((proc)->pdr.iline) /* upper address bound */
#define PROC_DUMMY_FRAME(proc) ((proc)->pdr.iopt) /* frame for CALL_DUMMY */
#define PROC_DUMMY_FRAME(proc) ((proc)->pdr.cbLineOffset) /*CALL_DUMMY frame */
#define PROC_FRAME_OFFSET(proc) ((proc)->pdr.frameoffset)
#define PROC_FRAME_REG(proc) ((proc)->pdr.framereg)
#define PROC_REG_MASK(proc) ((proc)->pdr.regmask)
@@ -154,8 +161,14 @@ struct linked_proc_info
think this will be a problem in praxis, though.
*/
#ifndef TM_LINUXALPHA_H
/* HACK: Provide a prototype when compiling this file for non
linuxalpha targets. */
long alpha_linux_sigtramp_offset PARAMS ((CORE_ADDR pc));
#endif
long
alpha_linux_sigtramp_offset (CORE_ADDR pc)
alpha_linux_sigtramp_offset (pc)
CORE_ADDR pc;
{
unsigned int i[3], w;
long off;
@@ -903,7 +916,7 @@ alpha_push_arguments (nargs, args, sp, struct_return, struct_addr)
int struct_return;
CORE_ADDR struct_addr;
{
register i;
int i;
int accumulate_size = struct_return ? 8 : 0;
int arg_regs_size = ALPHA_NUM_ARG_REGS * 8;
struct alpha_arg { char *contents; int len; int offset; };
@@ -1101,6 +1114,15 @@ alpha_pop_frame()
alpha_extra_func_info_t proc_desc = frame->proc_desc;
/* we need proc_desc to know how to restore the registers;
if it is NULL, construct (a temporary) one */
if (proc_desc == NULL)
proc_desc = find_proc_desc(frame->pc, frame->next);
/* Question: should we copy this proc_desc and save it in
frame->proc_desc? If we do, who will free it?
For now, we don't save a copy... */
write_register (PC_REGNUM, FRAME_SAVED_PC(frame));
if (frame->saved_regs == NULL)
alpha_find_saved_regs (frame);
@@ -1209,18 +1231,21 @@ alpha_skip_prologue (pc, lenient)
continue;
if ((inst & 0xffff0000) == 0x23de0000) /* lda $sp,n($sp) */
continue;
else if ((inst & 0xfc1f0000) == 0xb41e0000
&& (inst & 0xffff0000) != 0xb7fe0000)
if ((inst & 0xffe01fff) == 0x43c0153e) /* subq $sp,n,$sp */
continue;
if ((inst & 0xfc1f0000) == 0xb41e0000
&& (inst & 0xffff0000) != 0xb7fe0000)
continue; /* stq reg,n($sp) */
/* reg != $zero */
else if ((inst & 0xfc1f0000) == 0x9c1e0000
&& (inst & 0xffff0000) != 0x9ffe0000)
if ((inst & 0xfc1f0000) == 0x9c1e0000
&& (inst & 0xffff0000) != 0x9ffe0000)
continue; /* stt reg,n($sp) */
/* reg != $zero */
else if (inst == 0x47de040f) /* bis sp,sp,fp */
if (inst == 0x47de040f) /* bis sp,sp,fp */
continue;
else
break;
break;
}
return pc + offset;
}

View File

@@ -1,164 +1,163 @@
/* Low level interface to ptrace, for GDB when running under m68k SVR2 Unix
on Altos 3068. Report bugs to Jyrki Kuoppala <jkp@cs.hut.fi>
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "defs.h"
#include "frame.h"
#include "inferior.h"
#ifdef USG
#include <sys/types.h>
#endif
#include <sys/param.h>
#include <sys/dir.h>
#include <signal.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#ifdef USG
#include <sys/page.h>
#ifdef ALTOS
#include <sys/net.h>
#include <errno.h>
#endif
#endif
#include "gdbcore.h"
#include <sys/user.h> /* After a.out.h */
#include <sys/file.h>
#include "gdb_stat.h"
/* Work with core dump and executable files, for GDB.
This code would be in corefile.c if it weren't machine-dependent. */
void
core_file_command (filename, from_tty)
char *filename;
int from_tty;
{
int val;
extern char registers[];
/* Discard all vestiges of any previous core file
and mark data and stack spaces as empty. */
if (corefile)
free (corefile);
corefile = 0;
if (corechan >= 0)
close (corechan);
corechan = -1;
data_start = 0;
data_end = 0;
stack_start = STACK_END_ADDR;
stack_end = STACK_END_ADDR;
/* Now, if a new core file was specified, open it and digest it. */
if (filename)
{
filename = tilde_expand (filename);
make_cleanup (free, filename);
if (have_inferior_p ())
error ("To look at a core file, you must kill the program with \"kill\".");
corechan = open (filename, O_RDONLY, 0);
if (corechan < 0)
perror_with_name (filename);
/* 4.2-style (and perhaps also sysV-style) core dump file. */
{
struct user u;
unsigned int reg_offset;
val = myread (corechan, &u, sizeof u);
if (val < 0)
perror_with_name ("Not a core file: reading upage");
if (val != sizeof u)
error ("Not a core file: could only read %d bytes", val);
data_start = exec_data_start;
#if !defined (NBPG)
#define NBPG NBPP
#endif
#if !defined (UPAGES)
#define UPAGES USIZE
#endif
data_end = data_start + NBPG * u.u_dsize;
stack_start = stack_end - NBPG * u.u_ssize;
data_offset = NBPG * UPAGES + exec_data_start % NBPG /* Not sure about this //jkp */;
stack_offset = NBPG * (UPAGES + u.u_dsize);
/* Some machines put an absolute address in here and some put
the offset in the upage of the regs. */
reg_offset = (int) u.u_state;
if (reg_offset > NBPG * UPAGES)
reg_offset -= KERNEL_U_ADDR;
memcpy (&core_aouthdr, &u.u_exdata, sizeof (AOUTHDR));
printf_unfiltered ("Core file is from \"%s\".\n", u.u_comm);
/* I don't know where to find this info.
So, for now, mark it as not available. */
N_SET_MAGIC (core_aouthdr, 0);
/* Read the register values out of the core file and store
them where `read_register' will find them. */
{
register int regno;
for (regno = 0; regno < NUM_REGS; regno++)
{
char buf[MAX_REGISTER_RAW_SIZE];
val = lseek (corechan, register_addr (regno, reg_offset), 0);
if (val < 0
|| (val = myread (corechan, buf, sizeof buf)) < 0)
{
char * buffer = (char *) alloca (strlen (REGISTER_NAME (regno))
+ 30);
strcpy (buffer, "Reading register ");
strcat (buffer, REGISTER_NAME (regno));
perror_with_name (buffer);
}
supply_register (regno, buf);
}
}
}
if (filename[0] == '/')
corefile = savestring (filename, strlen (filename));
else
{
corefile = concat (current_directory, "/", filename, NULL);
}
flush_cached_frames ();
select_frame (get_current_frame (), 0);
validate_files ();
}
else if (from_tty)
printf_unfiltered ("No core file now.\n");
}
/* OBSOLETE /* Low level interface to ptrace, for GDB when running under m68k SVR2 Unix */
/* OBSOLETE on Altos 3068. Report bugs to Jyrki Kuoppala <jkp@cs.hut.fi> */
/* OBSOLETE Copyright (C) 1989, 1991 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, Boston, MA 02111-1307, USA. *x/ */
/* OBSOLETE */
/* OBSOLETE #include "defs.h" */
/* OBSOLETE #include "frame.h" */
/* OBSOLETE #include "inferior.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/ioctl.h> */
/* OBSOLETE #include <fcntl.h> */
/* OBSOLETE #ifdef USG */
/* OBSOLETE #include <sys/page.h> */
/* OBSOLETE #ifdef ALTOS */
/* OBSOLETE #include <sys/net.h> */
/* OBSOLETE #include <errno.h> */
/* OBSOLETE #endif */
/* OBSOLETE #endif */
/* OBSOLETE */
/* OBSOLETE #include "gdbcore.h" */
/* OBSOLETE #include <sys/user.h> /* After a.out.h *x/ */
/* OBSOLETE #include <sys/file.h> */
/* OBSOLETE #include "gdb_stat.h" */
/* OBSOLETE */
/* OBSOLETE */
/* OBSOLETE /* Work with core dump and executable files, for GDB. */
/* OBSOLETE This code would be in corefile.c if it weren't machine-dependent. *x/ */
/* OBSOLETE */
/* OBSOLETE void */
/* OBSOLETE core_file_command (filename, from_tty) */
/* OBSOLETE char *filename; */
/* OBSOLETE int from_tty; */
/* OBSOLETE { */
/* OBSOLETE int val; */
/* OBSOLETE */
/* OBSOLETE /* Discard all vestiges of any previous core file */
/* OBSOLETE and mark data and stack spaces as empty. *x/ */
/* OBSOLETE */
/* OBSOLETE if (corefile) */
/* OBSOLETE free (corefile); */
/* OBSOLETE corefile = 0; */
/* OBSOLETE */
/* OBSOLETE if (corechan >= 0) */
/* OBSOLETE close (corechan); */
/* OBSOLETE corechan = -1; */
/* OBSOLETE */
/* OBSOLETE data_start = 0; */
/* OBSOLETE data_end = 0; */
/* OBSOLETE stack_start = STACK_END_ADDR; */
/* OBSOLETE stack_end = STACK_END_ADDR; */
/* OBSOLETE */
/* OBSOLETE /* Now, if a new core file was specified, open it and digest it. *x/ */
/* OBSOLETE */
/* OBSOLETE if (filename) */
/* OBSOLETE { */
/* OBSOLETE filename = tilde_expand (filename); */
/* OBSOLETE make_cleanup (free, filename); */
/* OBSOLETE */
/* OBSOLETE if (have_inferior_p ()) */
/* OBSOLETE error ("To look at a core file, you must kill the program with \"kill\"."); */
/* OBSOLETE corechan = open (filename, O_RDONLY, 0); */
/* OBSOLETE if (corechan < 0) */
/* OBSOLETE perror_with_name (filename); */
/* OBSOLETE /* 4.2-style (and perhaps also sysV-style) core dump file. *x/ */
/* OBSOLETE { */
/* OBSOLETE struct user u; */
/* OBSOLETE */
/* OBSOLETE unsigned int reg_offset; */
/* OBSOLETE */
/* OBSOLETE val = myread (corechan, &u, sizeof u); */
/* OBSOLETE if (val < 0) */
/* OBSOLETE perror_with_name ("Not a core file: reading upage"); */
/* OBSOLETE if (val != sizeof u) */
/* OBSOLETE error ("Not a core file: could only read %d bytes", val); */
/* OBSOLETE data_start = exec_data_start; */
/* OBSOLETE */
/* OBSOLETE #if !defined (NBPG) */
/* OBSOLETE #define NBPG NBPP */
/* OBSOLETE #endif */
/* OBSOLETE #if !defined (UPAGES) */
/* OBSOLETE #define UPAGES USIZE */
/* OBSOLETE #endif */
/* OBSOLETE */
/* OBSOLETE data_end = data_start + NBPG * u.u_dsize; */
/* OBSOLETE stack_start = stack_end - NBPG * u.u_ssize; */
/* OBSOLETE data_offset = NBPG * UPAGES + exec_data_start % NBPG /* Not sure about this //jkp *x/; */
/* OBSOLETE stack_offset = NBPG * (UPAGES + u.u_dsize); */
/* OBSOLETE */
/* OBSOLETE /* Some machines put an absolute address in here and some put */
/* OBSOLETE the offset in the upage of the regs. *x/ */
/* OBSOLETE reg_offset = (int) u.u_state; */
/* OBSOLETE if (reg_offset > NBPG * UPAGES) */
/* OBSOLETE reg_offset -= KERNEL_U_ADDR; */
/* OBSOLETE */
/* OBSOLETE memcpy (&core_aouthdr, &u.u_exdata, sizeof (AOUTHDR)); */
/* OBSOLETE printf_unfiltered ("Core file is from \"%s\".\n", u.u_comm); */
/* OBSOLETE */
/* OBSOLETE /* I don't know where to find this info. */
/* OBSOLETE So, for now, mark it as not available. *x/ */
/* OBSOLETE N_SET_MAGIC (core_aouthdr, 0); */
/* OBSOLETE */
/* OBSOLETE /* Read the register values out of the core file and store */
/* OBSOLETE them where `read_register' will find them. *x/ */
/* OBSOLETE */
/* OBSOLETE { */
/* OBSOLETE register int regno; */
/* OBSOLETE */
/* OBSOLETE for (regno = 0; regno < NUM_REGS; regno++) */
/* OBSOLETE { */
/* OBSOLETE char buf[MAX_REGISTER_RAW_SIZE]; */
/* OBSOLETE */
/* OBSOLETE val = lseek (corechan, register_addr (regno, reg_offset), 0); */
/* OBSOLETE if (val < 0 */
/* OBSOLETE || (val = myread (corechan, buf, sizeof buf)) < 0) */
/* OBSOLETE { */
/* OBSOLETE char * buffer = (char *) alloca (strlen (REGISTER_NAME (regno)) */
/* OBSOLETE + 30); */
/* OBSOLETE strcpy (buffer, "Reading register "); */
/* OBSOLETE strcat (buffer, REGISTER_NAME (regno)); */
/* OBSOLETE */
/* OBSOLETE perror_with_name (buffer); */
/* OBSOLETE } */
/* OBSOLETE */
/* OBSOLETE supply_register (regno, buf); */
/* OBSOLETE } */
/* OBSOLETE } */
/* OBSOLETE } */
/* OBSOLETE if (filename[0] == '/') */
/* OBSOLETE corefile = savestring (filename, strlen (filename)); */
/* OBSOLETE else */
/* OBSOLETE { */
/* OBSOLETE corefile = concat (current_directory, "/", filename, NULL); */
/* OBSOLETE } */
/* OBSOLETE */
/* OBSOLETE flush_cached_frames (); */
/* OBSOLETE select_frame (get_current_frame (), 0); */
/* OBSOLETE validate_files (); */
/* OBSOLETE } */
/* OBSOLETE else if (from_tty) */
/* OBSOLETE printf_unfiltered ("No core file now.\n"); */
/* OBSOLETE } */

View File

@@ -1,5 +1,5 @@
/* Annotation routines for GDB.
Copyright 1986, 89, 90, 91, 92, 95, 1998 Free Software Foundation, Inc.
Copyright 1986, 89, 90, 91, 92, 95, 98, 1999 Free Software Foundation, Inc.
This file is part of GDB.
@@ -27,6 +27,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Prototypes for local functions. */
extern void _initialize_annotate PARAMS ((void));
static void print_value_flags PARAMS ((struct type *));
static void breakpoint_changed PARAMS ((struct breakpoint *));
@@ -34,6 +36,7 @@ static void breakpoint_changed PARAMS ((struct breakpoint *));
void (*annotate_starting_hook) PARAMS ((void));
void (*annotate_stopped_hook) PARAMS ((void));
void (*annotate_signalled_hook) PARAMS ((void));
void (*annotate_signal_hook) PARAMS ((void));
void (*annotate_exited_hook) PARAMS ((void));
static void
@@ -161,6 +164,9 @@ annotate_signal_string_end ()
void
annotate_signal ()
{
if (annotate_signal_hook)
annotate_signal_hook ();
if (annotation_level > 1)
printf_filtered ("\n\032\032signal\n");
}

View File

@@ -1,5 +1,5 @@
/* Annotation routines for GDB.
Copyright 1986, 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
Copyright 1986, 1989, 1990, 1991, 1992, 1999 Free Software Foundation, Inc.
This file is part of GDB.
@@ -101,4 +101,5 @@ extern void annotate_array_section_end PARAMS ((void));
extern void (*annotate_starting_hook) PARAMS ((void));
extern void (*annotate_stopped_hook) PARAMS ((void));
extern void (*annotate_signalled_hook) PARAMS ((void));
extern void (*annotate_signal_hook) PARAMS ((void));
extern void (*annotate_exited_hook) PARAMS ((void));

View File

@@ -234,7 +234,7 @@ arc_get_frame_setup (pc)
/* This sequence is used to get the address of the return
buffer for a function that returns a structure. */
insn = codestream_peek ();
if (insn & OPMASK == 0x60000000)
if ((insn & OPMASK) == 0x60000000)
codestream_get ();
}
/* Frameless fn. */
@@ -264,7 +264,7 @@ arc_get_frame_setup (pc)
This allows a quicker answer. */
CORE_ADDR
skip_prologue (pc, frameless_p)
arc_skip_prologue (pc, frameless_p)
CORE_ADDR pc;
int frameless_p;
{

View File

@@ -1,5 +1,5 @@
/* Target-dependent code for the Acorn Risc Machine, for GDB, the GNU Debugger.
Copyright (C) 1988, 1989, 1991, 1992, 1993, 1995, 1996, 1998, 1999
/* Target-dependent code for the Acorn Risc Machine (ARM).
Copyright (C) 1988, 1989, 1991, 1992, 1993, 1995-1999
Free Software Foundation, Inc.
This file is part of GDB.
@@ -45,7 +45,32 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
a power of two. */
#define ROUND_DOWN(n,a) ((n) & ~((a) - 1))
#define ROUND_UP(n,a) (((n) + (a) - 1) & ~((a) - 1))
static char *APCS_register_names[] =
{ "a1", "a2", "a3", "a4", /* 0 1 2 3 */
"v1", "v2", "v3", "v4", /* 4 5 6 7 */
"v5", "v6", "sl", "fp", /* 8 9 10 11 */
"ip", "sp", "lr", "pc", /* 12 13 14 15 */
"f0", "f1", "f2", "f3", /* 16 17 18 19 */
"f4", "f5", "f6", "f7", /* 20 21 22 23 */
"fps","ps" } /* 24 25 */;
/* These names are the ones which gcc emits, and
I find them less confusing. Toggle between them
using the `othernames' command. */
static char *additional_register_names[] =
{ "r0", "r1", "r2", "r3", /* 0 1 2 3 */
"r4", "r5", "r6", "r7", /* 4 5 6 7 */
"r8", "r9", "r10", "r11", /* 8 9 10 11 */
"r12", "r13", "r14", "pc", /* 12 13 14 15 */
"f0", "f1", "f2", "f3", /* 16 17 18 19 */
"f4", "f5", "f6", "f7", /* 20 21 22 23 */
"fps","ps" } /* 24 25 */;
/* By default use the APCS registers names */
char **arm_register_names = APCS_register_names;
/* Should call_function allocate stack space for a struct return? */
/* The system C compiler uses a similar structure return convention to gcc */
int
@@ -137,6 +162,19 @@ arm_saved_pc_after_call (frame)
return ADDR_BITS_REMOVE (read_register (LR_REGNUM));
}
int
arm_frameless_function_invocation (fi)
struct frame_info *fi;
{
int frameless;
CORE_ADDR func_start, after_prologue;
func_start = (get_pc_function_start ((fi)->pc) + FUNCTION_START_OFFSET);
after_prologue = func_start;
SKIP_PROLOGUE (after_prologue);
frameless = (after_prologue == func_start);
return frameless;
}
/* A typical Thumb prologue looks like this:
push {r7, lr}
add sp, sp, #-28
@@ -479,7 +517,7 @@ arm_scan_prologue (fi)
{
/* Get address of the stmfd in the prologue of the callee; the saved
PC is the address of the stmfd + 12. */
prologue_start = (read_memory_integer (fi->frame, 4) & 0x03fffffc) - 12;
prologue_start = ADDR_BITS_REMOVE(read_memory_integer (fi->frame, 4)) - 12;
prologue_end = prologue_start + 40; /* FIXME: should be big enough */
}
@@ -974,14 +1012,16 @@ arm_pop_frame ()
{
struct frame_info *frame = get_current_frame();
int regnum;
CORE_ADDR old_SP;
old_SP = read_register (frame->framereg);
for (regnum = 0; regnum < NUM_REGS; regnum++)
if (frame->fsr.regs[regnum] != 0)
write_register (regnum,
read_memory_integer (frame->fsr.regs[regnum], 4));
write_register (PC_REGNUM, FRAME_SAVED_PC (frame));
write_register (SP_REGNUM, read_register (frame->framereg));
write_register (SP_REGNUM, old_SP);
flush_cached_frames ();
}
@@ -1014,38 +1054,18 @@ arm_float_info ()
print_fpu_flags (status);
}
static char *original_register_names[] =
{ "a1", "a2", "a3", "a4", /* 0 1 2 3 */
"v1", "v2", "v3", "v4", /* 4 5 6 7 */
"v5", "v6", "sl", "fp", /* 8 9 10 11 */
"ip", "sp", "lr", "pc", /* 12 13 14 15 */
"f0", "f1", "f2", "f3", /* 16 17 18 19 */
"f4", "f5", "f6", "f7", /* 20 21 22 23 */
"fps","ps" } /* 24 25 */;
/* These names are the ones which gcc emits, and
I find them less confusing. Toggle between them
using the `othernames' command. */
static char *additional_register_names[] =
{ "r0", "r1", "r2", "r3", /* 0 1 2 3 */
"r4", "r5", "r6", "r7", /* 4 5 6 7 */
"r8", "r9", "sl", "fp", /* 8 9 10 11 */
"ip", "sp", "lr", "pc", /* 12 13 14 15 */
"f0", "f1", "f2", "f3", /* 16 17 18 19 */
"f4", "f5", "f6", "f7", /* 20 21 22 23 */
"fps","ps" } /* 24 25 */;
char **arm_register_names = original_register_names;
static void
arm_othernames ()
{
static int toggle;
arm_register_names = (toggle
? additional_register_names
: original_register_names);
toggle = !toggle;
if (arm_register_names == APCS_register_names) {
arm_register_names = additional_register_names;
arm_toggle_regnames ();
} else {
arm_register_names = APCS_register_names;
arm_toggle_regnames ();
}
}
/* FIXME: Fill in with the 'right thing', see asm
@@ -1601,8 +1621,15 @@ arm_skip_stub (pc)
void
_initialize_arm_tdep ()
{
tm_print_insn = gdb_print_insn_arm;
int regname_is_APCS = (arm_register_names == APCS_register_names);
tm_print_insn = gdb_print_insn_arm;
/* Sync the opcode insn printer with our register viewer: */
if (arm_toggle_regnames () != regname_is_APCS)
arm_toggle_regnames ();
add_com ("othernames", class_obscure, arm_othernames,
"Switch to the other set of register names.");

View File

@@ -161,7 +161,6 @@ core_file_command (filename, from_tty)
int from_tty;
{
int val;
extern char registers[];
/* Discard all vestiges of any previous core file
and mark data and stack spaces as empty. */

View File

@@ -17,8 +17,6 @@ You 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. */
/* $Id$ */
#include "defs.h"
#include "symtab.h"
#include "symfile.h"
@@ -1903,7 +1901,6 @@ agent_command (exp, from_tty)
struct cleanup *old_chain = 0;
struct expression *expr;
struct agent_expr *agent;
struct agent_reqs reqs;
struct frame_info *fi = get_current_frame (); /* need current scope */
/* We don't deal with overlay debugging at the moment. We need to
@@ -1921,7 +1918,9 @@ agent_command (exp, from_tty)
agent = gen_trace_for_expr (fi->pc, expr);
make_cleanup ((make_cleanup_func) free_agent_expr, agent);
ax_print (gdb_stdout, agent);
ax_reqs (agent, &reqs);
/* It would be nice to call ax_reqs here to gather some general info
about the expression, and then print out the result. */
do_cleanups (old_chain);
dont_repeat ();

View File

@@ -17,8 +17,6 @@ You 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. */
/* $Id$ */
#ifndef AX_GDB_H
#define AX_GDB_H

View File

@@ -17,8 +17,6 @@ You 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. */
/* $Id$ */
/* Despite what the above comment says about this file being part of
GDB, we would like to keep these functions free of GDB
dependencies, since we want to be able to use them in contexts
@@ -27,6 +25,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "defs.h"
#include "ax.h"
#include "value.h"
static void grow_expr PARAMS ((struct agent_expr *x, int n));
static void append_const PARAMS ((struct agent_expr *x, LONGEST val, int n));
static LONGEST read_const PARAMS ((struct agent_expr *x, int o, int n));
static void generic_ext PARAMS ((struct agent_expr *x, enum agent_op op, int n));
/* Functions for building expressions. */

View File

@@ -17,8 +17,6 @@ You 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. */
/* $Id$ */
#ifndef AGENTEXPR_H
#define AGENTEXPR_H

View File

@@ -138,8 +138,6 @@ bcache (bytes, count, bcachep)
return (location);
}
#if MAINTENANCE_CMDS
void
print_bcache_statistics (bcachep, id)
struct bcache *bcachep;
@@ -215,5 +213,3 @@ print_bcache_statistics (bcachep, id)
}
printf_filtered (" Maximum chain length %d at %d:%d\n", lmax, lmaxt, lmaxh);
}
#endif /* MAINTENANCE_CMDS */

View File

@@ -62,11 +62,7 @@ struct bcache {
extern void *
bcache PARAMS ((void *bytes, int count, struct bcache *bcachep));
#if MAINTENANCE_CMDS
extern void
print_bcache_statistics PARAMS ((struct bcache *, char *));
#endif /* MAINTENANCE_CMDS */
#endif /* BCACHE_H */

View File

@@ -88,13 +88,14 @@ inside_entry_file (addr)
return 1;
if (symfile_objfile == 0)
return 0;
#if CALL_DUMMY_LOCATION == AT_ENTRY_POINT
/* 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))
return 0;
#endif
if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT)
{
/* 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))
return 0;
}
return (addr >= symfile_objfile -> ei.entry_file_lowpc &&
addr < symfile_objfile -> ei.entry_file_highpc);
}
@@ -148,19 +149,20 @@ CORE_ADDR pc;
int
inside_entry_func (pc)
CORE_ADDR pc;
CORE_ADDR pc;
{
if (pc == 0)
return 1;
if (symfile_objfile == 0)
return 0;
#if CALL_DUMMY_LOCATION == AT_ENTRY_POINT
/* 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))
return 0;
#endif
if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT)
{
/* 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))
return 0;
}
return (symfile_objfile -> ei.entry_func_lowpc <= pc &&
symfile_objfile -> ei.entry_func_highpc > pc);
}
@@ -245,16 +247,6 @@ create_new_frame (addr, pc)
return fi;
}
/* Return the frame that called FI.
If FI is the original frame (it has no caller), return 0. */
struct frame_info *
get_prev_frame (frame)
struct frame_info *frame;
{
return get_prev_frame_info (frame);
}
/* Return the frame that FRAME calls (NULL if FRAME is the innermost
frame). */
@@ -315,9 +307,9 @@ frameless_look_for_prologue (frame)
#ifdef SKIP_PROLOGUE_FRAMELESS_P
/* This is faster, since only care whether there *is* a prologue,
not how long it is. */
SKIP_PROLOGUE_FRAMELESS_P (after_prologue);
after_prologue = SKIP_PROLOGUE_FRAMELESS_P (after_prologue);
#else
SKIP_PROLOGUE (after_prologue);
after_prologue = SKIP_PROLOGUE (after_prologue);
#endif
return after_prologue == func_start;
}
@@ -352,7 +344,7 @@ frameless_look_for_prologue (frame)
if there is no such frame. */
struct frame_info *
get_prev_frame_info (next_frame)
get_prev_frame (next_frame)
struct frame_info *next_frame;
{
CORE_ADDR address = 0;
@@ -389,17 +381,16 @@ get_prev_frame_info (next_frame)
define this macro to take two args; a frameinfo pointer
identifying a frame and a variable to set or clear if it is
or isn't leafless. */
#ifdef FRAMELESS_FUNCTION_INVOCATION
/* Still don't want to worry about this except on the innermost
frame. This macro will set FROMLEAF if NEXT_FRAME is a
frameless function invocation. */
if (!(next_frame->next))
{
FRAMELESS_FUNCTION_INVOCATION (next_frame, fromleaf);
fromleaf = FRAMELESS_FUNCTION_INVOCATION (next_frame);
if (fromleaf)
address = FRAME_FP (next_frame);
}
#endif
if (!fromleaf)
{
@@ -1034,7 +1025,72 @@ sigtramp_saved_pc (frame)
}
#endif /* SIGCONTEXT_PC_OFFSET */
#ifdef USE_GENERIC_DUMMY_FRAMES
/* 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. */
extern CORE_ADDR text_end;
int
pc_in_call_dummy_before_text_end (pc, sp, frame_address)
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 (pc, sp, frame_address)
CORE_ADDR pc;
CORE_ADDR sp;
CORE_ADDR frame_address;
{
return ((pc) >= text_end
&& (pc) <= text_end + CALL_DUMMY_LENGTH + DECR_PC_AFTER_BREAK);
}
/* Is the PC in a call dummy? SP and FRAME_ADDRESS are the bottom and
top of the stack frame which we are checking, where "bottom" and
"top" refer to some section of memory which contains the code for
the call dummy. Calls to this macro assume that the contents of
SP_REGNUM and FP_REGNUM (or the saved values thereof), respectively,
are the things to pass.
This won't work on the 29k, where SP_REGNUM and FP_REGNUM don't
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.
Something simpler, like checking for the stack segment, doesn't work,
since various programs (threads implementations, gcc nested function
stubs, etc) may either allocate stack frames in another segment, or
allocate other kinds of code on the stack. */
int
pc_in_call_dummy_on_stack (pc, sp, frame_address)
CORE_ADDR pc;
CORE_ADDR sp;
CORE_ADDR frame_address;
{
return (INNER_THAN ((sp), (pc))
&& (frame_address != 0)
&& INNER_THAN ((pc), (frame_address)));
}
int
pc_in_call_dummy_at_entry_point (pc, sp, frame_address)
CORE_ADDR pc;
CORE_ADDR sp;
CORE_ADDR frame_address;
{
return ((pc) >= CALL_DUMMY_ADDRESS ()
&& (pc) <= (CALL_DUMMY_ADDRESS () + DECR_PC_AFTER_BREAK));
}
/*
* GENERIC DUMMY FRAMES
@@ -1051,7 +1107,22 @@ sigtramp_saved_pc (frame)
* zero, and CALL_DUMMY_LOCATION to AT_ENTRY. Then you must remember
* to define PUSH_RETURN_ADDRESS, because no call instruction will be
* being executed by the target. Also FRAME_CHAIN_VALID as
* generic_frame_chain_valid. */
* generic_frame_chain_valid and FIX_CALL_DUMMY as
* generic_fix_call_dummy. */
/* Dummy frame. This saves the processor state just prior to setting
up the inferior function call. Older targets save the registers
target stack (but that really slows down function calls). */
struct dummy_frame
{
struct dummy_frame *next;
CORE_ADDR pc;
CORE_ADDR fp;
CORE_ADDR sp;
char *registers;
};
static struct dummy_frame *dummy_frame_stack = NULL;
@@ -1073,7 +1144,7 @@ generic_find_dummy_frame (pc, fp)
dummyframe = dummyframe->next)
if (fp == dummyframe->fp || fp == dummyframe->sp)
/* The frame in question lies between the saved fp and sp, inclusive */
return dummyframe->regs;
return dummyframe->registers;
return 0;
}
@@ -1082,12 +1153,14 @@ generic_find_dummy_frame (pc, fp)
Return true if this is a dummy frame created by gdb for an inferior call */
int
generic_pc_in_call_dummy (pc, fp)
generic_pc_in_call_dummy (pc, sp, fp)
CORE_ADDR pc;
CORE_ADDR sp;
CORE_ADDR fp;
{
/* if find_dummy_frame succeeds, then PC is in a call dummy */
return (generic_find_dummy_frame (pc, fp) != 0);
/* Note: SP and not FP is passed on. */
return (generic_find_dummy_frame (pc, sp) != 0);
}
/* Function: read_register_dummy
@@ -1137,10 +1210,12 @@ generic_push_dummy_frame ()
dummy_frame = dummy_frame->next;
dummy_frame = xmalloc (sizeof (struct dummy_frame));
dummy_frame->registers = xmalloc (REGISTER_BYTES);
dummy_frame->pc = read_register (PC_REGNUM);
dummy_frame->sp = read_register (SP_REGNUM);
dummy_frame->fp = fp;
read_register_bytes (0, dummy_frame->regs, REGISTER_BYTES);
read_register_bytes (0, dummy_frame->registers, REGISTER_BYTES);
dummy_frame->next = dummy_frame_stack;
dummy_frame_stack = dummy_frame;
}
@@ -1174,8 +1249,10 @@ generic_pop_dummy_frame ()
if (!dummy_frame)
error ("Can't pop dummy frame!");
dummy_frame_stack = dummy_frame->next;
write_register_bytes (0, dummy_frame->regs, REGISTER_BYTES);
write_register_bytes (0, dummy_frame->registers, REGISTER_BYTES);
flush_cached_frames ();
free (dummy_frame->registers);
free (dummy_frame);
}
@@ -1196,6 +1273,23 @@ generic_frame_chain_valid (fp, fi)
&& !inside_entry_file (FRAME_SAVED_PC(fi)));
}
/* Function: fix_call_dummy
Stub function. Generic dumy frames typically do not need to fix
the frame being created */
void
generic_fix_call_dummy (dummy, pc, fun, nargs, args, type, gcc_p)
char *dummy;
CORE_ADDR pc;
CORE_ADDR fun;
int nargs;
struct value **args;
struct type *type;
int gcc_p;
{
return;
}
/* Function: get_saved_register
Find register number REGNUM relative to FRAME and put its (raw,
target format) contents in *RAW_BUFFER.
@@ -1292,7 +1386,6 @@ generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
if (raw_buffer)
read_register_gen (regnum, raw_buffer);
}
#endif /* USE_GENERIC_DUMMY_FRAMES */
void
_initialize_blockframe ()

View File

@@ -88,9 +88,14 @@ watch_command PARAMS ((char *, int));
static int
can_use_hardware_watchpoint PARAMS ((struct value *));
static void break_at_finish_command PARAMS ((char *, int));
static void break_at_finish_at_depth_command PARAMS ((char *, int));
void
tbreak_command PARAMS ((char *, int));
static void tbreak_at_finish_command PARAMS ((char *, int));
static void
break_command_1 PARAMS ((char *, int, int));
@@ -182,6 +187,36 @@ static void awatch_command PARAMS ((char *, int));
static void do_enable_breakpoint PARAMS ((struct breakpoint *, enum bpdisp));
static void create_solib_load_unload_event_breakpoint PARAMS ((char *hookname, int tempflag, char *dll_pathname, char *cond_string, enum bptype bp_kind));
static void create_fork_vfork_event_catchpoint PARAMS ((int tempflag, char * cond_string, enum bptype bp_kind));
static void break_at_finish_at_depth_command_1 PARAMS ((char *arg, int flag, int from_tty));
static void break_at_finish_command_1 PARAMS ((char *arg, int flag, int from_tty));
static void stop_command PARAMS ((char *arg, int from_tty));
static void stopin_command PARAMS ((char *arg, int from_tty));
static void stopat_command PARAMS ((char *arg, int from_tty));
static char *ep_find_event_name_end PARAMS ((char *arg));
static char *ep_parse_optional_if_clause PARAMS ((char **arg));
static char *ep_parse_optional_filename PARAMS ((char **arg));
static void catch_exec_command_1 PARAMS ((char *arg, int tempflag, int from_tty));
static void create_exception_catchpoint PARAMS ((int tempflag, char *cond_string, enum exception_event_kind ex_event, struct symtab_and_line *sal));
static void catch_exception_command_1 PARAMS ((enum exception_event_kind ex_event, char *arg, int tempflag, int from_tty));
static void tcatch_command PARAMS ((char *arg, int from_tty));
static void ep_skip_leading_whitespace PARAMS ((char **s));
/* Prototypes for exported functions. */
static void
@@ -842,6 +877,9 @@ which its expression is valid.\n", b->number);
case bp_catch_exec :
val = target_insert_exec_catchpoint (inferior_pid);
break;
default:
warning ("GDB bug: breakpoint.c (insert_breakpoints): enclosing `if' does not protect `switch'");
break;
}
if (val < 0)
{
@@ -1156,6 +1194,9 @@ remove_breakpoint (b, is)
case bp_catch_exec :
val = target_remove_exec_catchpoint (inferior_pid);
break;
default:
warning ("GDB bug: breakpoint.c (remove_breakpoint): enclosing `if' does not protect `switch'");
break;
}
if (val)
return val;
@@ -1327,29 +1368,26 @@ int
frame_in_dummy (frame)
struct frame_info *frame;
{
#ifdef CALL_DUMMY
#ifdef USE_GENERIC_DUMMY_FRAMES
return generic_pc_in_call_dummy (frame->pc, frame->frame);
#else
struct breakpoint *b;
if (! CALL_DUMMY_P)
return 0;
if (USE_GENERIC_DUMMY_FRAMES)
return generic_pc_in_call_dummy (frame->pc, frame->frame, frame->frame);
ALL_BREAKPOINTS (b)
{
static ULONGEST dummy[] = CALL_DUMMY;
if (b->type == bp_call_dummy
&& b->frame == frame->frame
/* We need to check the PC as well as the frame on the sparc,
for signals.exp in the testsuite. */
&& (frame->pc
>= (b->address
- sizeof (dummy) / sizeof (LONGEST) * REGISTER_SIZE))
- SIZEOF_CALL_DUMMY_WORDS / sizeof (LONGEST) * REGISTER_SIZE))
&& frame->pc <= b->address)
return 1;
}
#endif /* GENERIC_DUMMY_FRAMES */
#endif /* CALL_DUMMY */
return 0;
}
@@ -2681,6 +2719,7 @@ breakpoint_1 (bnum, allflag)
static char bpenables[] = "nyn";
char wrap_indent[80];
ALL_BREAKPOINTS (b)
if (bnum == -1
|| bnum == b->number)
@@ -2896,7 +2935,7 @@ breakpoint_1 (bnum, allflag)
while (l)
{
print_command_line (l, 4);
print_command_line (l, 4, gdb_stdout);
l = l->next;
}
}
@@ -2932,10 +2971,8 @@ breakpoints_info (bnum_exp, from_tty)
breakpoint_1 (bnum, 0);
}
#if MAINTENANCE_CMDS
/* ARGSUSED */
void
static void
maintenance_info_breakpoints (bnum_exp, from_tty)
char *bnum_exp;
int from_tty;
@@ -2948,8 +2985,6 @@ maintenance_info_breakpoints (bnum_exp, from_tty)
breakpoint_1 (bnum, 1);
}
#endif
/* Print a message describing any breakpoints set at PC. */
static void
@@ -3241,11 +3276,11 @@ re_enable_breakpoints_in_shlibs ()
static void
create_solib_load_unload_event_breakpoint (hookname, tempflag, dll_pathname, cond_string, bp_kind)
char * hookname;
int tempflag;
char * dll_pathname;
char * cond_string;
enum bptype bp_kind;
char *hookname;
int tempflag;
char *dll_pathname;
char *cond_string;
enum bptype bp_kind;
{
struct breakpoint * b;
struct symtabs_and_lines sals;
@@ -3351,9 +3386,9 @@ create_solib_unload_event_breakpoint (hookname, tempflag, dll_pathname, cond_str
static void
create_fork_vfork_event_catchpoint (tempflag, cond_string, bp_kind)
int tempflag;
char * cond_string;
enum bptype bp_kind;
int tempflag;
char *cond_string;
enum bptype bp_kind;
{
struct symtab_and_line sal;
struct breakpoint * b;
@@ -4092,7 +4127,7 @@ break_command (arg, from_tty)
break_command_1 (arg, 0, from_tty);
}
void
static void
break_at_finish_command (arg, from_tty)
char *arg;
int from_tty;
@@ -4100,7 +4135,7 @@ break_at_finish_command (arg, from_tty)
break_at_finish_command_1 (arg, 0, from_tty);
}
void
static void
break_at_finish_at_depth_command (arg, from_tty)
char *arg;
int from_tty;
@@ -4116,7 +4151,7 @@ tbreak_command (arg, from_tty)
break_command_1 (arg, BP_TEMPFLAG, from_tty);
}
void
static void
tbreak_at_finish_command (arg, from_tty)
char *arg;
int from_tty;
@@ -4531,6 +4566,7 @@ struct sal_chain
struct symtab_and_line sal;
};
#if 0
/* Not really used -- invocation in handle_gnu_4_16_catch_command
had been commented out in the v.4.16 sources, and stays
disabled there now because "catch NAME" syntax isn't allowed.
@@ -4594,6 +4630,7 @@ map_catch_names (args, function)
while (*p == ' ' || *p == '\t') p++;
}
}
#endif
/* This shares a lot of code with `print_frame_label_vars' from stack.c. */
@@ -4711,7 +4748,7 @@ get_catch_sals (this_level_only)
static void
ep_skip_leading_whitespace (s)
char ** s;
char **s;
{
if ((s == NULL) || (*s == NULL))
return;
@@ -4725,7 +4762,7 @@ ep_skip_leading_whitespace (s)
the token is returned. Else, NULL is returned. */
static char *
ep_find_event_name_end (arg)
char * arg;
char *arg;
{
char * s = arg;
char * event_name_end = NULL;
@@ -4758,7 +4795,7 @@ ep_find_event_name_end (arg)
if clause in the arg string. */
static char *
ep_parse_optional_if_clause (arg)
char ** arg;
char **arg;
{
char * cond_string;
@@ -4791,7 +4828,7 @@ ep_parse_optional_if_clause (arg)
future access should copy it to their own buffers. */
static char *
ep_parse_optional_filename (arg)
char ** arg;
char **arg;
{
static char filename [1024];
char * arg_p = *arg;
@@ -4821,12 +4858,14 @@ ep_parse_optional_filename (arg)
typedef enum {catch_fork, catch_vfork} catch_fork_kind;
static void catch_fork_command_1 PARAMS ((catch_fork_kind fork_kind, char *arg, int tempflag, int from_tty));
static void
catch_fork_command_1 (fork_kind, arg, tempflag, from_tty)
catch_fork_kind fork_kind;
char * arg;
int tempflag;
int from_tty;
catch_fork_kind fork_kind;
char *arg;
int tempflag;
int from_tty;
{
char * cond_string = NULL;
@@ -4859,9 +4898,9 @@ catch_fork_command_1 (fork_kind, arg, tempflag, from_tty)
static void
catch_exec_command_1 (arg, tempflag, from_tty)
char * arg;
int tempflag;
int from_tty;
char *arg;
int tempflag;
int from_tty;
{
char * cond_string = NULL;
@@ -4979,10 +5018,10 @@ catch_unload_command_1 (arg, tempflag, from_tty)
static void
create_exception_catchpoint (tempflag, cond_string, ex_event, sal)
int tempflag;
char * cond_string;
enum exception_event_kind ex_event;
struct symtab_and_line * sal;
int tempflag;
char *cond_string;
enum exception_event_kind ex_event;
struct symtab_and_line *sal;
{
struct breakpoint * b;
int i;
@@ -5020,10 +5059,10 @@ create_exception_catchpoint (tempflag, cond_string, ex_event, sal)
static void
catch_exception_command_1 (ex_event, arg, tempflag, from_tty)
enum exception_event_kind ex_event;
char * arg;
int tempflag;
int from_tty;
enum exception_event_kind ex_event;
char *arg;
int tempflag;
int from_tty;
{
char * cond_string = NULL;
struct symtab_and_line * sal = NULL;
@@ -6587,8 +6626,6 @@ are set to the address of the last breakpoint listed.\n\n\
Convenience variable \"$bpnum\" contains the number of the last\n\
breakpoint set.", NULL));
#if MAINTENANCE_CMDS
add_cmd ("breakpoints", class_maintenance, maintenance_info_breakpoints,
concat ("Status of all breakpoints, or breakpoint number NUMBER.\n\
The \"Type\" column indicates one of:\n\
@@ -6608,8 +6645,6 @@ Convenience variable \"$bpnum\" contains the number of the last\n\
breakpoint set.", NULL),
&maintenanceinfolist);
#endif /* MAINTENANCE_CMDS */
add_com ("catch", class_breakpoint, catch_command,
"Set catchpoints to catch events.\n\
Raised signals may be caught:\n\

View File

@@ -112,6 +112,7 @@ enum bptype {
commands for C++ exception handling. */
bp_catch_catch,
bp_catch_throw
};

File diff suppressed because it is too large Load Diff

View File

@@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "language.h"
#include "c-lang.h"
extern void _initialize_c_language PARAMS ((void));
static void c_emit_char PARAMS ((int c, GDB_FILE *stream, int quoter));
/* Print the character C on STREAM as part of the contents of a literal

View File

@@ -41,6 +41,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Flag indicating target was compiled by HP compiler */
extern int hp_som_som_object_present;
static void cp_type_print_method_args PARAMS ((struct type **args, char *prefix, char *varstring, int staticp, GDB_FILE *stream));
static void
c_type_print_args PARAMS ((struct type *, GDB_FILE *));
@@ -203,7 +205,7 @@ cp_type_print_derivation_info (stream, type)
}
/* Print the C++ method arguments ARGS to the file STREAM. */
void
static void
cp_type_print_method_args (args, prefix, varstring, staticp, stream)
struct type **args;
char *prefix;
@@ -913,7 +915,7 @@ c_type_print_base (type, stream, show, level)
char *p;
char *demangled_no_class = demangled_name;
while (p = strchr (demangled_no_class, ':'))
while ((p = strchr (demangled_no_class, ':')))
{
demangled_no_class = p;
if (*++demangled_no_class == ':')

View File

@@ -26,6 +26,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "language.h"
#include "ch-lang.h"
extern void _initialize_chill_language PARAMS ((void));
static value_ptr
evaluate_subexp_chill PARAMS ((struct type *, struct expression *, int *, enum noside));

View File

@@ -42,6 +42,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "complaints.h"
#include "target.h"
extern void _initialize_coffread PARAMS ((void));
struct coff_symfile_info {
file_ptr min_lineno_offset; /* Where in file lowest line#s are */
file_ptr max_lineno_offset; /* 1+last byte of line#s in file */
@@ -84,21 +86,6 @@ static CORE_ADDR current_source_end_addr;
static bfd *nlist_bfd_global;
static int nlist_nsyms_global;
/* Vector of line number information. */
static struct linetable *line_vector;
/* Index of next entry to go in line_vector_index. */
static int line_vector_index;
/* Last line number recorded in the line vector. */
static int prev_line_number;
/* Number of elements allocated for line_vector currently. */
static int line_vector_length;
/* Pointers to scratch storage, used for reading raw symbols and auxents. */
@@ -252,8 +239,6 @@ static void complete_symtab PARAMS ((char *, CORE_ADDR, unsigned int));
static void coff_start_symtab PARAMS ((char *));
static void coff_record_line PARAMS ((int, CORE_ADDR));
static struct type *coff_alloc_type PARAMS ((int));
static struct type **coff_lookup_type PARAMS ((int));
@@ -440,30 +425,6 @@ coff_alloc_type (index)
return type;
}
/* Record a line number entry for line LINE at address PC.
FIXME: Use record_line instead. */
static void
coff_record_line (line, pc)
int line;
CORE_ADDR pc;
{
struct linetable_entry *e;
/* Make sure line vector is big enough. */
if (line_vector_index + 2 >= line_vector_length)
{
line_vector_length *= 2;
line_vector = (struct linetable *)
xrealloc ((char *) line_vector, sizeof (struct linetable)
+ (line_vector_length
* sizeof (struct linetable_entry)));
}
e = line_vector->item + line_vector_index++;
e->line = line; e->pc = pc;
}
/* Start a new symtab for a new source file.
This is called when a COFF ".file" symbol is seen;
it indicates the start of data for one original source file. */
@@ -484,17 +445,6 @@ coff_start_symtab (name)
last_source_start_addr in coff_end_symtab. */
0);
record_debugformat ("COFF");
/* Initialize the source file line number information for this file. */
if (line_vector) /* Unlikely, but maybe possible? */
free ((PTR)line_vector);
line_vector_index = 0;
line_vector_length = 1000;
prev_line_number = -2; /* Force first line number to be explicit */
line_vector = (struct linetable *)
xmalloc (sizeof (struct linetable)
+ line_vector_length * sizeof (struct linetable_entry));
}
/* Save the vital information from when starting to read a file,
@@ -535,26 +485,12 @@ coff_end_symtab (objfile)
last_source_start_addr = current_source_start_addr;
/* For no good reason, this file stores the number of entries in a
separate variable instead of in line_vector->nitems. Fix it. */
if (line_vector)
line_vector->nitems = line_vector_index;
/* For COFF, we only have one subfile, so we can just look at
subfiles and not worry about there being other elements in the
chain. We fill in various fields now because we didn't know them
before (or because doing it now is simply an artifact of how this
file used to be written). */
subfiles->line_vector = line_vector;
symtab = end_symtab (current_source_end_addr, objfile, 0);
if (symtab != NULL)
free_named_symtabs (symtab->filename);
/* Reinitialize for beginning of new file. */
line_vector = 0;
line_vector_length = -1;
last_source_file = NULL;
}
@@ -683,7 +619,6 @@ coff_symfile_read (objfile, section_offsets, mainline)
/* Set a few file-statics that give us specific information about
the particular COFF file format we're reading. */
local_linesz = cdata->local_linesz;
local_n_btmask = cdata->local_n_btmask;
local_n_btshft = cdata->local_n_btshft;
local_n_tmask = cdata->local_n_tmask;
@@ -753,6 +688,17 @@ coff_symfile_read (objfile, section_offsets, mainline)
if (info->stabsects)
{
if (! info->stabstrsect)
{
error_begin ();
fprintf_filtered
(gdb_stderr,
("The debugging information in `%s' is corrupted.\n"
"The file has a `.stabs' section, but no `.stabstr' section.\n"),
name);
return_to_top_level (RETURN_ERROR);
}
/* FIXME: dubious. Why can't we use something normal like
bfd_get_section_contents? */
bfd_seek (abfd, abfd->where, 0);
@@ -820,6 +766,7 @@ coff_symtab_read (symtab_offset, nsyms, section_offsets, objfile)
char *filestring = "";
int depth = 0;
int fcn_first_line = 0;
CORE_ADDR fcn_first_line_addr;
int fcn_last_line = 0;
int fcn_start_addr = 0;
long fcn_line_ptr = 0;
@@ -1076,6 +1023,7 @@ coff_symtab_read (symtab_offset, nsyms, section_offsets, objfile)
if (cs->c_naux != 1)
complain (&bf_no_aux_complaint, cs->c_symnum);
fcn_first_line = main_aux.x_sym.x_misc.x_lnsz.x_lnno;
fcn_first_line_addr = cs->c_value;
/* Might want to check that locals are 0 and
context_stack_depth is zero, and complain if not. */
@@ -1118,8 +1066,18 @@ coff_symtab_read (symtab_offset, nsyms, section_offsets, objfile)
{
fcn_last_line = main_aux.x_sym.x_misc.x_lnsz.x_lnno;
}
enter_linenos (fcn_line_ptr, fcn_first_line, fcn_last_line,
section_offsets);
/* fcn_first_line is the line number of the opening '{'.
Do not record it - because it would affect gdb's idea
of the line number of the first statement of the function -
except for one-line functions, for which it is also the line
number of all the statements and of the closing '}', and
for which we do not have any other statement-line-number. */
if (fcn_last_line == 1)
record_line (current_subfile, fcn_first_line,
fcn_first_line_addr);
else
enter_linenos (fcn_line_ptr, fcn_first_line, fcn_last_line,
section_offsets);
finish_block (new->name, &local_symbols, new->old_blocks,
new->start_addr,
@@ -1458,7 +1416,7 @@ enter_linenos (file_offset, first_line, last_line, section_offsets)
rawptr += local_linesz;
/* The next function, or the sentinel, will have L_LNNO32 zero; we exit. */
if (L_LNNO32 (&lptr) && L_LNNO32 (&lptr) <= last_line)
coff_record_line (first_line + L_LNNO32 (&lptr),
record_line (current_subfile, first_line + L_LNNO32 (&lptr),
lptr.l_addr.l_paddr
+ ANOFFSET (section_offsets, SECT_OFF_TEXT));
else

View File

@@ -51,6 +51,12 @@ static int parse_binary_operation PARAMS ((char *));
static void print_doc_line PARAMS ((GDB_FILE *, char *));
static struct cmd_list_element *find_cmd PARAMS ((char *command,
int len,
struct cmd_list_element *clist,
int ignore_help_classes,
int *nfound));
void _initialize_command PARAMS ((void));
/* Add element named NAME.
@@ -568,6 +574,7 @@ help_cmd_list (list, class, prefix, recurse, stream)
static struct cmd_list_element *
find_cmd(command, len, clist, ignore_help_classes, nfound)
char *command;
int len;
struct cmd_list_element *clist;
int ignore_help_classes;
int *nfound;
@@ -1513,7 +1520,7 @@ show_user_1 (c, stream)
while (cmdlines)
{
print_command_line (cmdlines, 4);
print_command_line (cmdlines, 4, stream);
cmdlines = cmdlines->next;
}
fputs_filtered ("\n", stream);

View File

@@ -21,6 +21,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "complaints.h"
#include "gdbcmd.h"
extern void _initialize_complaints PARAMS ((void));
/* Structure to manage complaints about symbol file contents. */
struct complaint complaint_root[1] = {

View File

@@ -1,17 +1,5 @@
/* config.in. Generated automatically from configure.in by autoheader. */
/* Whether malloc must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_MALLOC
/* Whether realloc must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_REALLOC
/* Whether free must be declared even if <stdlib.h> is included. */
#undef NEED_DECLARATION_FREE
/* Whether strerror must be declared even if <string.h> is included. */
#undef NEED_DECLARATION_STRERROR
/* Define if on AIX 3.
System headers sometimes define this.
We just want to avoid a redefinition error message. */
@@ -116,6 +104,13 @@
size_t, and assorted other type changes. */
#undef PROC_SERVICE_IS_OLD
/* If you want to specify a default CPU variant, define this to be its
name, as a C string. */
#undef TARGET_CPU_DEFAULT
/* Define if the simulator is being linked in. */
#undef WITH_SIM
/* Set to true if the save_state_t structure is present */
#define HAVE_STRUCT_SAVE_STATE_T 0
@@ -140,6 +135,9 @@
/* Define if you have the bzero function. */
#undef HAVE_BZERO
/* Define if you have the poll function. */
#undef HAVE_POLL
/* Define if you have the dcgettext function. */
#undef HAVE_DCGETTEXT
@@ -248,6 +246,9 @@
/* Define if you have the <sys/reg.h> header file. */
#undef HAVE_SYS_REG_H
/* Define if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
/* Define if you have the <sys/wait.h> header file. */
#undef HAVE_SYS_WAIT_H
@@ -311,6 +312,9 @@
/* Define if strdup is not declared in system header files. */
#undef NEED_DECLARATION_STRDUP
/* Define if strstr is not declared in system header files. */
#undef NEED_DECLARATION_STRSTR
/* Define if <sys/procfs.h> has pstatus_t. */
#undef HAVE_PSTATUS_T

View File

@@ -43,9 +43,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) \
{ pc = skip_prologue (pc); }
CORE_ADDR skip_prologue ();
#define SKIP_PROLOGUE(pc) (a29k_skip_prologue (pc))
CORE_ADDR a29k_skip_prologue ();
/* Immediately after a function call, return the saved pc.
Can't go through the frames for this because on some machines
@@ -429,7 +428,7 @@ long read_register_stack_integer ();
/* Because INIT_FRAME_PC gets passed fromleaf, that's where we init
not only ->pc and ->frame, but all the extra stuff, when called from
get_prev_frame_info, that is. */
get_prev_frame, that is. */
#define INIT_EXTRA_FRAME_INFO(fromleaf, fci) init_extra_frame_info(fci)
void init_extra_frame_info ();
@@ -472,11 +471,10 @@ void init_frame_pc ();
/* Define other aspects of the stack frame. */
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
(FRAMELESS) = frameless_look_for_prologue(FI)
/* An expression that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. */
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(frameless_look_for_prologue (FI))
/* Saved pc (i.e. return address). */
#define FRAME_SAVED_PC(fraim) \
@@ -495,7 +493,7 @@ extern CORE_ADDR frame_locals_address ();
the argcount field from it, to support debugging assembler code.
Problem was, the "argcount" field never did hold the argument
count. */
#define FRAME_NUM_ARGS(numargs, fi) ((numargs) = -1)
#define FRAME_NUM_ARGS(fi) (-1)
#define FRAME_ARGS_ADDRESS(fi) FRAME_LOCALS_ADDRESS (fi)
@@ -506,7 +504,13 @@ extern CORE_ADDR frame_locals_address ();
/* Provide our own get_saved_register. HAVE_REGISTER_WINDOWS is insufficient
because registers get renumbered on the a29k without getting saved. */
#define GET_SAVED_REGISTER
#ifdef __STDC__
enum lval_type;
struct frame_info;
#endif
void a29k_get_saved_register PARAMS ((char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lvalp));
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
a29k_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
/* Call function stuff. */

View File

@@ -1,5 +1,5 @@
/* Target machine description for VxWorks on the 29k, for GDB, the GNU debugger.
Copyright 1994 Free Software Foundation, Inc.
Copyright 1994, 1999 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
@@ -19,10 +19,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "a29k/tm-a29k.h"
#define GDBINIT_FILENAME ".vxgdbinit"
#define DEFAULT_PROMPT "(vxgdb) "
#include "tm-vxworks.h"
/* Number of registers in a ptrace_getregs call. */

View File

@@ -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
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Figure out where the longjmp will land. We expect that we have just entered
longjmp and haven't yet setup the stack frame, so the args are still in the

View File

@@ -59,7 +59,7 @@ struct symbol;
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) pc = alpha_skip_prologue(pc, 0)
#define SKIP_PROLOGUE(pc) (alpha_skip_prologue(pc, 0))
extern CORE_ADDR alpha_skip_prologue PARAMS ((CORE_ADDR addr, int lenient));
/* Immediately after a function call, return the saved pc.
@@ -110,7 +110,7 @@ alpha_saved_pc_after_call PARAMS ((struct frame_info *));
"f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",\
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",\
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "fpcr",\
"pc", "vfp", \
}
@@ -132,6 +132,7 @@ alpha_saved_pc_after_call PARAMS ((struct frame_info *));
#define ZERO_REGNUM 31 /* Read-only register, always 0 */
#define FP0_REGNUM 32 /* Floating point register 0 */
#define FPA0_REGNUM 48 /* First float arg during a subr call */
#define FPCR_REGNUM 63 /* Floating point control register */
#define PC_REGNUM 64 /* Contains program counter */
#define FP_REGNUM 65 /* Virtual frame pointer */
@@ -176,7 +177,7 @@ alpha_saved_pc_after_call PARAMS ((struct frame_info *));
memory format is an integer with 4 bytes or less, as the representation
of integers in floating point registers is different. */
#define REGISTER_CONVERTIBLE(N) ((N) >= FP0_REGNUM && (N) < FP0_REGNUM + 32)
#define REGISTER_CONVERTIBLE(N) ((N) >= FP0_REGNUM && (N) < FP0_REGNUM + 31)
/* Convert data from raw format for register REGNUM in buffer FROM
to virtual format with type TYPE in buffer TO. */
@@ -198,7 +199,7 @@ alpha_register_convert_to_raw PARAMS ((struct type *, int, char *, char *));
of data in register N. */
#define REGISTER_VIRTUAL_TYPE(N) \
(((N) >= FP0_REGNUM && (N) < FP0_REGNUM+32) \
(((N) >= FP0_REGNUM && (N) < FP0_REGNUM+31) \
? builtin_type_double : builtin_type_long) \
/* Store the address of the place in which to copy the structure the
@@ -251,12 +252,11 @@ extern CORE_ADDR alpha_frame_chain PARAMS ((struct frame_info *));
/* Define other aspects of the stack frame. */
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
/* An expression that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. */
/* We handle this differently for alpha, and maybe we should not */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) {(FRAMELESS) = 0;}
#define FRAMELESS_FUNCTION_INVOCATION(FI) (0)
/* Saved Pc. */
@@ -286,7 +286,7 @@ alpha_frame_saved_pc PARAMS ((struct frame_info *));
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(num, fi) ((num) = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */
@@ -311,7 +311,7 @@ extern void alpha_find_saved_regs PARAMS ((struct frame_info *));
/* Things needed for making the inferior call functions. */
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \
sp = alpha_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))
(alpha_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)))
extern CORE_ADDR
alpha_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR));

View File

@@ -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
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if !defined (HOST_BYTE_ORDER)
#define HOST_BYTE_ORDER LITTLE_ENDIAN

View File

@@ -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
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#if !defined (HOST_BYTE_ORDER)
#define HOST_BYTE_ORDER LITTLE_ENDIAN

View File

@@ -37,11 +37,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
knows that the function has a frame. Its result is equal
to its input PC if the function is frameless, unequal otherwise. */
#define SKIP_PROLOGUE(pc) \
{ pc = skip_prologue (pc, 0); }
#define SKIP_PROLOGUE_FRAMELESS_P(pc) \
{ pc = skip_prologue (pc, 1); }
extern CORE_ADDR skip_prologue PARAMS ((CORE_ADDR, int));
#define SKIP_PROLOGUE(pc) (arc_skip_prologue (pc, 0))
#define SKIP_PROLOGUE_FRAMELESS_P(pc) (arc_skip_prologue (pc, 1))
extern CORE_ADDR arc_skip_prologue PARAMS ((CORE_ADDR, int));
/* Sequence of bytes for breakpoint instruction.
??? The current value is "sr -1,[-1]" and is for the simulator only.
@@ -267,17 +265,11 @@ extern void arc_software_single_step PARAMS ((unsigned int, int));
and has no caller. */
#define FRAME_CHAIN_VALID(chain, thisframe) nonnull_frame_chain_valid (chain, thisframe)
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
/* An expression that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
do { \
if ((FI)->signal_handler_caller) \
(FRAMELESS) = 0; \
else \
(FRAMELESS) = frameless_look_for_prologue (FI); \
} while (0)
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(((FI)->signal_handler_caller) ? 0 : frameless_look_for_prologue (FI))
/* Where is the PC for a specific frame.
A leaf function may never save blink, so we have to check for that here. */
@@ -302,7 +294,7 @@ CORE_ADDR arc_frame_saved_pc PARAMS ((struct frame_info *));
/* Set NUMARGS to the number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(numargs, fi) (numargs = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */

View File

@@ -1,5 +1,5 @@
/* Definitions to make GDB target for an ARM
Copyright 1986, 1987, 1989, 1991, 1993, 1997, 1998 Free Software Foundation, Inc.
Copyright 1986-1989, 1991, 1993-1999 Free Software Foundation, Inc.
This file is part of GDB.
@@ -56,7 +56,7 @@ CORE_ADDR arm_addr_bits_remove PARAMS ((CORE_ADDR));
extern CORE_ADDR arm_skip_prologue PARAMS ((CORE_ADDR pc));
#define SKIP_PROLOGUE(pc) { pc = arm_skip_prologue (pc); }
#define SKIP_PROLOGUE(pc) (arm_skip_prologue (pc))
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines
@@ -268,7 +268,8 @@ extern use_struct_convention_fn arm_use_struct_convention;
the address in which a function should return its structure value,
as a CORE_ADDR (or an expression that can be used as one). */
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) (*(int *)(REGBUF))
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
(extract_address ((PTR) (REGBUF), REGISTER_RAW_SIZE(0)))
/* Specify that for the native compiler variables for a particular
lexical context are listed after the beginning LBRAC instead of
@@ -312,18 +313,10 @@ extern int arm_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *));
/* Define other aspects of the stack frame. */
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
{ \
CORE_ADDR func_start, after_prologue; \
func_start = (get_pc_function_start ((FI)->pc) + \
FUNCTION_START_OFFSET); \
after_prologue = func_start; \
SKIP_PROLOGUE (after_prologue); \
(FRAMELESS) = (after_prologue == func_start); \
}
/* An expression that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. */
extern int arm_frameless_function_invocation PARAMS ((struct frame_info *frame));
#define FRAMELESS_FUNCTION_INVOCATION(FI) (arm_frameless_function_invocation (FI))
/* Saved Pc. */
@@ -337,7 +330,7 @@ extern CORE_ADDR arm_frame_saved_pc PARAMS ((struct frame_info *));
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(numargs, fi) (numargs = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */
@@ -361,9 +354,8 @@ void frame_find_saved_regs PARAMS((struct frame_info *fi,
/* Things needed for making the inferior call functions. */
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \
sp = arm_push_arguments ((nargs), (args), (sp), (struct_return), (struct_addr))
extern CORE_ADDR
arm_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR));
(arm_push_arguments ((nargs), (args), (sp), (struct_return), (struct_addr)))
extern CORE_ADDR arm_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR));
/* Push an empty stack frame, to record the current PC, etc. */

View File

@@ -1,163 +1,164 @@
@c OBSOLETE
@c OBSOLETE @node Convex,,, Top
@c OBSOLETE @appendix Convex-specific info
@c OBSOLETE @cindex Convex notes
@c OBSOLETE
@c OBSOLETE Scalar registers are 64 bits long, which is a pain since
@c OBSOLETE left half of an S register frequently contains noise.
@c OBSOLETE Therefore there are two ways to obtain the value of an S register.
@c OBSOLETE
@c OBSOLETE @table @kbd
@c OBSOLETE @item $s0
@c OBSOLETE returns the low half of the register as an int
@c OBSOLETE
@c OBSOLETE @item $S0
@c OBSOLETE returns the whole register as a long long
@c OBSOLETE @end table
@c OBSOLETE
@c OBSOLETE You can print the value in floating point by using @samp{p/f $s0} or @samp{p/f $S0}
@c OBSOLETE to print a single or double precision value.
@c OBSOLETE
@c OBSOLETE @cindex vector registers
@c OBSOLETE Vector registers are handled similarly, with @samp{$V0} denoting the whole
@c OBSOLETE 64-bit register and @kbd{$v0} denoting the 32-bit low half; @samp{p/f $v0}
@c OBSOLETE or @samp{p/f $V0} can be used to examine the register in floating point.
@c OBSOLETE The length of the vector registers is taken from @samp{$vl}.
@c OBSOLETE
@c OBSOLETE Individual elements of a vector register are denoted in the obvious way;
@c OBSOLETE @samp{print $v3[9]} prints the tenth element of register @kbd{v3}, and
@c OBSOLETE @samp{set $v3[9] = 1234} alters it.
@c OBSOLETE
@c OBSOLETE @kbd{$vl} and @kbd{$vs} are int, and @kbd{$vm} is an int vector.
@c OBSOLETE Elements of @kbd{$vm} can't be assigned to.
@c OBSOLETE
@c OBSOLETE @cindex communication registers
@c OBSOLETE @kindex info comm-registers
@c OBSOLETE Communication registers have names @kbd{$C0 .. $C63}, with @kbd{$c0 .. $c63}
@c OBSOLETE denoting the low-order halves. @samp{info comm-registers} will print them
@c OBSOLETE all out, and tell which are locked. (A communication register is
@c OBSOLETE locked when a value is sent to it, and unlocked when the value is
@c OBSOLETE received.) Communication registers are, of course, global to all
@c OBSOLETE threads, so it does not matter what the currently selected thread is.
@c OBSOLETE @samp{info comm-reg @var{name}} prints just that one communication
@c OBSOLETE register; @samp{name} may also be a communication register number
@c OBSOLETE @samp{nn} or @samp{0xnn}.
@c OBSOLETE @samp{info comm-reg @var{address}} prints the contents of the resource
@c OBSOLETE structure at that address.
@c OBSOLETE
@c OBSOLETE @kindex info psw
@c OBSOLETE The command @samp{info psw} prints the processor status word @kbd{$ps}
@c OBSOLETE bit by bit.
@c OBSOLETE
@c OBSOLETE @kindex set base
@c OBSOLETE GDB normally prints all integers in base 10, but the leading
@c OBSOLETE @kbd{0x80000000} of pointers is intolerable in decimal, so the default
@c OBSOLETE output radix has been changed to try to print addresses appropriately.
@c OBSOLETE The @samp{set base} command can be used to change this.
@c OBSOLETE
@c OBSOLETE @table @code
@c OBSOLETE @item set base 10
@c OBSOLETE Integer values always print in decimal.
@c OBSOLETE
@c OBSOLETE @item set base 16
@c OBSOLETE Integer values always print in hex.
@c OBSOLETE
@c OBSOLETE @item set base
@c OBSOLETE Go back to the initial state, which prints integer values in hex if they
@c OBSOLETE look like pointers (specifically, if they start with 0x8 or 0xf in the
@c OBSOLETE stack), otherwise in decimal.
@c OBSOLETE @end table
@c OBSOLETE
@c OBSOLETE @kindex set pipeline
@c OBSOLETE When an exception such as a bus error or overflow happens, usually the PC
@c OBSOLETE is several instructions ahead by the time the exception is detected.
@c OBSOLETE The @samp{set pipe} command will disable this.
@c OBSOLETE
@c OBSOLETE @table @code
@c OBSOLETE @item set pipeline off
@c OBSOLETE Forces serial execution of instructions; no vector chaining and no
@c OBSOLETE scalar instruction overlap. With this, exceptions are detected with
@c OBSOLETE the PC pointing to the instruction after the one in error.
@c OBSOLETE
@c OBSOLETE @item set pipeline on
@c OBSOLETE Returns to normal, fast, execution. This is the default.
@c OBSOLETE @end table
@c OBSOLETE
@c OBSOLETE @cindex parallel
@c OBSOLETE In a parallel program, multiple threads may be executing, each
@c OBSOLETE with its own registers, stack, and local memory. When one of them
@c OBSOLETE hits a breakpoint, that thread is selected. Other threads do
@c OBSOLETE not run while the thread is in the breakpoint.
@c OBSOLETE
@c OBSOLETE @kindex 1cont
@c OBSOLETE The selected thread can be single-stepped, given signals, and so
@c OBSOLETE on. Any other threads remain stopped. When a @samp{cont} command is given,
@c OBSOLETE all threads are resumed. To resume just the selected thread, use
@c OBSOLETE the command @samp{1cont}.
@c OBSOLETE
@c OBSOLETE @kindex thread
@c OBSOLETE The @samp{thread} command will show the active threads and the
@c OBSOLETE instruction they are about to execute. The selected thread is marked
@c OBSOLETE with an asterisk. The command @samp{thread @var{n}} will select thread @var{n},
@c OBSOLETE shifting the debugger's attention to it for single-stepping,
@c OBSOLETE registers, local memory, and so on.
@c OBSOLETE
@c OBSOLETE @kindex info threads
@c OBSOLETE The @samp{info threads} command will show what threads, if any, have
@c OBSOLETE invisibly hit breakpoints or signals and are waiting to be noticed.
@c OBSOLETE
@c OBSOLETE @kindex set parallel
@c OBSOLETE The @samp{set parallel} command controls how many threads can be active.
@c OBSOLETE
@c OBSOLETE @table @code
@c OBSOLETE @item set parallel off
@c OBSOLETE One thread. Requests by the program that other threads join in
@c OBSOLETE (spawn and pfork instructions) do not cause other threads to start up.
@c OBSOLETE This does the same thing as the @samp{limit concurrency 1} command.
@c OBSOLETE
@c OBSOLETE @item set parallel fixed
@c OBSOLETE All CPUs are assigned to your program whenever it runs. When it
@c OBSOLETE executes a pfork or spawn instruction, it begins parallel execution
@c OBSOLETE immediately. This does the same thing as the @samp{mpa -f} command.
@c OBSOLETE
@c OBSOLETE @item set parallel on
@c OBSOLETE One or more threads. Spawn and pfork cause CPUs to join in when and if
@c OBSOLETE they are free. This is the default. It is very good for system
@c OBSOLETE throughput, but not very good for finding bugs in parallel code. If you
@c OBSOLETE suspect a bug in parallel code, you probably want @samp{set parallel fixed.}
@c OBSOLETE @end table
@c OBSOLETE
@c OBSOLETE @subsection Limitations
@c OBSOLETE
@c OBSOLETE WARNING: Convex GDB evaluates expressions in long long, because S
@c OBSOLETE registers are 64 bits long. However, GDB expression semantics are not
@c OBSOLETE exactly C semantics. This is a bug, strictly speaking, but it's not one I
@c OBSOLETE know how to fix. If @samp{x} is a program variable of type int, then it
@c OBSOLETE is also type int to GDB, but @samp{x + 1} is long long, as is @samp{x + y}
@c OBSOLETE or any other expression requiring computation. So is the expression
@c OBSOLETE @samp{1}, or any other constant. You only really have to watch out for
@c OBSOLETE calls. The innocuous expression @samp{list_node (0x80001234)} has an
@c OBSOLETE argument of type long long. You must explicitly cast it to int.
@c OBSOLETE
@c OBSOLETE It is not possible to continue after an uncaught fatal signal by using
@c OBSOLETE @samp{signal 0}, @samp{return}, @samp{jump}, or anything else. The difficulty is with
@c OBSOLETE Unix, not GDB.
@c OBSOLETE
@c OBSOLETE I have made no big effort to make such things as single-stepping a
@c OBSOLETE @kbd{join} instruction do something reasonable. If the program seems to
@c OBSOLETE hang when doing this, type @kbd{ctrl-c} and @samp{cont}, or use
@c OBSOLETE @samp{thread} to shift to a live thread. Single-stepping a @kbd{spawn}
@c OBSOLETE instruction apparently causes new threads to be born with their T bit set;
@c OBSOLETE this is not handled gracefully. When a thread has hit a breakpoint, other
@c OBSOLETE threads may have invisibly hit the breakpoint in the background; if you
@c OBSOLETE clear the breakpoint gdb will be surprised when threads seem to continue
@c OBSOLETE to stop at it. All of these situations produce spurious signal 5 traps;
@c OBSOLETE if this happens, just type @samp{cont}. If it becomes a nuisance, use
@c OBSOLETE @samp{handle 5 nostop}. (It will ask if you are sure. You are.)
@c OBSOLETE
@c OBSOLETE There is no way in GDB to store a float in a register, as with
@c OBSOLETE @kbd{set $s0 = 3.1416}. The identifier @kbd{$s0} denotes an integer,
@c OBSOLETE and like any C expression which assigns to an integer variable, the
@c OBSOLETE right-hand side is casted to type int. If you should need to do
@c OBSOLETE something like this, you can assign the value to @kbd{@{float@} ($sp-4)}
@c OBSOLETE and then do @kbd{set $s0 = $sp[-4]}. Same deal with @kbd{set $v0[69] = 6.9}.
@node Convex,,, Top
@appendix Convex-specific info
@cindex Convex notes
Scalar registers are 64 bits long, which is a pain since
left half of an S register frequently contains noise.
Therefore there are two ways to obtain the value of an S register.
@table @kbd
@item $s0
returns the low half of the register as an int
@item $S0
returns the whole register as a long long
@end table
You can print the value in floating point by using @samp{p/f $s0} or @samp{p/f $S0}
to print a single or double precision value.
@cindex vector registers
Vector registers are handled similarly, with @samp{$V0} denoting the whole
64-bit register and @kbd{$v0} denoting the 32-bit low half; @samp{p/f $v0}
or @samp{p/f $V0} can be used to examine the register in floating point.
The length of the vector registers is taken from @samp{$vl}.
Individual elements of a vector register are denoted in the obvious way;
@samp{print $v3[9]} prints the tenth element of register @kbd{v3}, and
@samp{set $v3[9] = 1234} alters it.
@kbd{$vl} and @kbd{$vs} are int, and @kbd{$vm} is an int vector.
Elements of @kbd{$vm} can't be assigned to.
@cindex communication registers
@kindex info comm-registers
Communication registers have names @kbd{$C0 .. $C63}, with @kbd{$c0 .. $c63}
denoting the low-order halves. @samp{info comm-registers} will print them
all out, and tell which are locked. (A communication register is
locked when a value is sent to it, and unlocked when the value is
received.) Communication registers are, of course, global to all
threads, so it does not matter what the currently selected thread is.
@samp{info comm-reg @var{name}} prints just that one communication
register; @samp{name} may also be a communication register number
@samp{nn} or @samp{0xnn}.
@samp{info comm-reg @var{address}} prints the contents of the resource
structure at that address.
@kindex info psw
The command @samp{info psw} prints the processor status word @kbd{$ps}
bit by bit.
@kindex set base
GDB normally prints all integers in base 10, but the leading
@kbd{0x80000000} of pointers is intolerable in decimal, so the default
output radix has been changed to try to print addresses appropriately.
The @samp{set base} command can be used to change this.
@table @code
@item set base 10
Integer values always print in decimal.
@item set base 16
Integer values always print in hex.
@item set base
Go back to the initial state, which prints integer values in hex if they
look like pointers (specifically, if they start with 0x8 or 0xf in the
stack), otherwise in decimal.
@end table
@kindex set pipeline
When an exception such as a bus error or overflow happens, usually the PC
is several instructions ahead by the time the exception is detected.
The @samp{set pipe} command will disable this.
@table @code
@item set pipeline off
Forces serial execution of instructions; no vector chaining and no
scalar instruction overlap. With this, exceptions are detected with
the PC pointing to the instruction after the one in error.
@item set pipeline on
Returns to normal, fast, execution. This is the default.
@end table
@cindex parallel
In a parallel program, multiple threads may be executing, each
with its own registers, stack, and local memory. When one of them
hits a breakpoint, that thread is selected. Other threads do
not run while the thread is in the breakpoint.
@kindex 1cont
The selected thread can be single-stepped, given signals, and so
on. Any other threads remain stopped. When a @samp{cont} command is given,
all threads are resumed. To resume just the selected thread, use
the command @samp{1cont}.
@kindex thread
The @samp{thread} command will show the active threads and the
instruction they are about to execute. The selected thread is marked
with an asterisk. The command @samp{thread @var{n}} will select thread @var{n},
shifting the debugger's attention to it for single-stepping,
registers, local memory, and so on.
@kindex info threads
The @samp{info threads} command will show what threads, if any, have
invisibly hit breakpoints or signals and are waiting to be noticed.
@kindex set parallel
The @samp{set parallel} command controls how many threads can be active.
@table @code
@item set parallel off
One thread. Requests by the program that other threads join in
(spawn and pfork instructions) do not cause other threads to start up.
This does the same thing as the @samp{limit concurrency 1} command.
@item set parallel fixed
All CPUs are assigned to your program whenever it runs. When it
executes a pfork or spawn instruction, it begins parallel execution
immediately. This does the same thing as the @samp{mpa -f} command.
@item set parallel on
One or more threads. Spawn and pfork cause CPUs to join in when and if
they are free. This is the default. It is very good for system
throughput, but not very good for finding bugs in parallel code. If you
suspect a bug in parallel code, you probably want @samp{set parallel fixed.}
@end table
@subsection Limitations
WARNING: Convex GDB evaluates expressions in long long, because S
registers are 64 bits long. However, GDB expression semantics are not
exactly C semantics. This is a bug, strictly speaking, but it's not one I
know how to fix. If @samp{x} is a program variable of type int, then it
is also type int to GDB, but @samp{x + 1} is long long, as is @samp{x + y}
or any other expression requiring computation. So is the expression
@samp{1}, or any other constant. You only really have to watch out for
calls. The innocuous expression @samp{list_node (0x80001234)} has an
argument of type long long. You must explicitly cast it to int.
It is not possible to continue after an uncaught fatal signal by using
@samp{signal 0}, @samp{return}, @samp{jump}, or anything else. The difficulty is with
Unix, not GDB.
I have made no big effort to make such things as single-stepping a
@kbd{join} instruction do something reasonable. If the program seems to
hang when doing this, type @kbd{ctrl-c} and @samp{cont}, or use
@samp{thread} to shift to a live thread. Single-stepping a @kbd{spawn}
instruction apparently causes new threads to be born with their T bit set;
this is not handled gracefully. When a thread has hit a breakpoint, other
threads may have invisibly hit the breakpoint in the background; if you
clear the breakpoint gdb will be surprised when threads seem to continue
to stop at it. All of these situations produce spurious signal 5 traps;
if this happens, just type @samp{cont}. If it becomes a nuisance, use
@samp{handle 5 nostop}. (It will ask if you are sure. You are.)
There is no way in GDB to store a float in a register, as with
@kbd{set $s0 = 3.1416}. The identifier @kbd{$s0} denotes an integer,
and like any C expression which assigns to an integer variable, the
right-hand side is casted to type int. If you should need to do
something like this, you can assign the value to @kbd{@{float@} ($sp-4)}
and then do @kbd{set $s0 = $sp[-4]}. Same deal with @kbd{set $v0[69] = 6.9}.

View File

@@ -1,3 +1,3 @@
# Host: Convex Unix (4bsd)
XDEPFILES= convex-xdep.o
XM_FILE= xm-convex.h
# OBSOLETE # Host: Convex Unix (4bsd)
# OBSOLETE XDEPFILES= convex-xdep.o
# OBSOLETE XM_FILE= xm-convex.h

View File

@@ -1,3 +1,3 @@
# Target: Convex Unix (4bsd)
TDEPFILES= convex-tdep.o
TM_FILE= tm-convex.h
# OBSOLETE # Target: Convex Unix (4bsd)
# OBSOLETE TDEPFILES= convex-tdep.o
# OBSOLETE TM_FILE= tm-convex.h

View File

@@ -1,511 +1,486 @@
/* Definitions to make GDB run on Convex Unix (4bsd)
Copyright 1989, 1991, 1993 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define TARGET_BYTE_ORDER BIG_ENDIAN
/* There is come problem with the debugging symbols generated by the
compiler such that the debugging symbol for the first line of a
function overlap with the function prologue. */
#define PROLOGUE_FIRSTLINE_OVERLAP
/* When convex pcc says CHAR or SHORT, it provides the correct address. */
#define BELIEVE_PCC_PROMOTION 1
/* Symbol types to ignore. */
/* 0xc4 is N_MONPT. Use the numeric value for the benefit of people
with (rather) old OS's. */
#define IGNORE_SYMBOL(TYPE) \
(((TYPE) & ~N_EXT) == N_TBSS \
|| ((TYPE) & ~N_EXT) == N_TDATA \
|| ((TYPE) & ~N_EXT) == 0xc4)
/* Offset from address of function to start of its code.
Zero on most machines. */
#define FUNCTION_START_OFFSET 0
/* Advance PC across any function entry prologue instructions
to reach some "real" code.
Convex prolog is:
[sub.w #-,sp] in one of 3 possible sizes
[mov psw,- fc/vc main program prolog
and #-,- (skip it because the "mov psw" saves the
mov -,psw] T bit, so continue gets a surprise trap)
[and #-,sp] fc/vc O2 main program prolog
[ld.- -(ap),-] pcc/gcc register arg loads
*/
#define SKIP_PROLOGUE(pc) \
{ int op, ix; \
op = read_memory_integer (pc, 2); \
if ((op & 0xffc7) == 0x5ac0) pc += 2; \
else if (op == 0x1580) pc += 4; \
else if (op == 0x15c0) pc += 6; \
if ((read_memory_integer (pc, 2) & 0xfff8) == 0x7c40 \
&& (read_memory_integer (pc + 2, 2) & 0xfff8) == 0x1240 \
&& (read_memory_integer (pc + 8, 2) & 0xfff8) == 0x7c48) \
pc += 10; \
if (read_memory_integer (pc, 2) == 0x1240) pc += 6; \
for (;;) { \
op = read_memory_integer (pc, 2); \
ix = (op >> 3) & 7; \
if (ix != 6) break; \
if ((op & 0xfcc0) == 0x3000) pc += 4; \
else if ((op & 0xfcc0) == 0x3040) pc += 6; \
else if ((op & 0xfcc0) == 0x2800) pc += 4; \
else if ((op & 0xfcc0) == 0x2840) pc += 6; \
else break;}}
/* Immediately after a function call, return the saved pc.
(ignore frame and return *$sp so we can handle both calls and callq) */
#define SAVED_PC_AFTER_CALL(frame) \
read_memory_integer (read_register (SP_REGNUM), 4)
/* Address of end of stack space.
This is ((USRSTACK + 0xfff) & -0x1000)) from <convex/vmparam.h> but
that expression depends on the kernel version; instead, fetch a
page-zero pointer and get it from that. This will be invalid if
they ever change the way bkpt signals are delivered. */
#define STACK_END_ADDR (0xfffff000 & *(unsigned *) 0x80000050)
/* User-mode traps push an extended rtn block,
then fault with one of the following PCs */
#define is_trace_pc(pc) ((unsigned) ((pc) - (*(int *) 0x80000040)) <= 4)
#define is_arith_pc(pc) ((unsigned) ((pc) - (*(int *) 0x80000044)) <= 4)
#define is_break_pc(pc) ((unsigned) ((pc) - (*(int *) 0x80000050)) <= 4)
/* We need to manipulate trap bits in the psw */
#define PSW_TRAP_FLAGS 0x69670000
#define PSW_T_BIT 0x08000000
#define PSW_S_BIT 0x01000000
/* Stack grows downward. */
#define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
/* Sequence of bytes for breakpoint instruction. (bkpt) */
#define BREAKPOINT {0x7d,0x50}
/* Amount PC must be decremented by after a breakpoint.
This is often the number of bytes in BREAKPOINT but not always.
(The break PC needs to be decremented by 2, but we do it when the
break frame is recognized and popped. That way gdb can tell breaks
from trace traps with certainty.) */
#define DECR_PC_AFTER_BREAK 0
/* Say how long (ordinary) registers are. This is a piece of bogosity
used in push_word and a few other places; REGISTER_RAW_SIZE is the
real way to know how big a register is. */
#define REGISTER_SIZE 8
/* Number of machine registers */
#define NUM_REGS 26
/* Initializer for an array of names of registers.
There should be NUM_REGS strings in this initializer. */
#define REGISTER_NAMES {"pc","psw","fp","ap","a5","a4","a3","a2","a1","sp",\
"s7","s6","s5","s4","s3","s2","s1","s0",\
"S7","S6","S5","S4","S3","S2","S1","S0"}
/* 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. */
#define S0_REGNUM 25 /* the real S regs */
#define S7_REGNUM 18
#define s0_REGNUM 17 /* low-order halves of S regs */
#define s7_REGNUM 10
#define SP_REGNUM 9 /* A regs */
#define A1_REGNUM 8
#define A5_REGNUM 4
#define AP_REGNUM 3
#define FP_REGNUM 2 /* Contains address of executing stack frame */
#define PS_REGNUM 1 /* Contains processor status */
#define PC_REGNUM 0 /* Contains program counter */
/* convert dbx stab register number (from `r' declaration) to a gdb REGNUM */
#define STAB_REG_TO_REGNUM(value) \
((value) < 8 ? S0_REGNUM - (value) : SP_REGNUM - ((value) - 8))
/* Vector register numbers, not handled as ordinary regs.
They are treated as convenience variables whose values are read
from the inferior when needed. */
#define V0_REGNUM 0
#define V7_REGNUM 7
#define VM_REGNUM 8
#define VS_REGNUM 9
#define VL_REGNUM 10
/* Total amount of space needed to store our copies of the machine's
register state, the array `registers'. */
#define REGISTER_BYTES (4*10 + 8*8)
/* Index within `registers' of the first byte of the space for
register N.
NB: must match structure of struct syscall_context for correct operation */
#define REGISTER_BYTE(N) ((N) < s7_REGNUM ? 4*(N) : \
(N) < S7_REGNUM ? 44 + 8 * ((N)-s7_REGNUM) : \
40 + 8 * ((N)-S7_REGNUM))
/* Number of bytes of storage in the actual machine representation
for register N. */
#define REGISTER_RAW_SIZE(N) ((N) < S7_REGNUM ? 4 : 8)
/* Number of bytes of storage in the program's representation
for register N. */
#define REGISTER_VIRTUAL_SIZE(N) REGISTER_RAW_SIZE(N)
/* Largest value REGISTER_RAW_SIZE can have. */
#define MAX_REGISTER_RAW_SIZE 8
/* Largest value REGISTER_VIRTUAL_SIZE can have. */
#define MAX_REGISTER_VIRTUAL_SIZE 8
/* Return the GDB type object for the "standard" data type
of data in register N. */
#define REGISTER_VIRTUAL_TYPE(N) \
((N) < S7_REGNUM ? builtin_type_int : builtin_type_long_long)
/* Store the address of the place in which to copy the structure the
subroutine will return. This is called from call_function. */
#define STORE_STRUCT_RETURN(ADDR, SP) \
{ write_register (A1_REGNUM, (ADDR)); }
/* Extract from an array REGBUF containing the (raw) register state
a function return value of type TYPE, and copy that, in virtual format,
into VALBUF. */
#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
memcpy (VALBUF, &((char *) REGBUF) [REGISTER_BYTE (S0_REGNUM) + \
8 - TYPE_LENGTH (TYPE)],\
TYPE_LENGTH (TYPE))
/* Write into appropriate registers a function return value
of type TYPE, given in virtual format. */
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
write_register_bytes (REGISTER_BYTE (S0_REGNUM), VALBUF, 8)
/* Extract from an array REGBUF containing the (raw) register state
the address in which a function should return its structure value,
as a CORE_ADDR (or an expression that can be used as one). */
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
(*(int *) & ((char *) REGBUF) [REGISTER_BYTE (s0_REGNUM)])
/* Define trapped internal variable hooks to read and write
vector and communication registers. */
#define IS_TRAPPED_INTERNALVAR is_trapped_internalvar
#define VALUE_OF_TRAPPED_INTERNALVAR value_of_trapped_internalvar
#define SET_TRAPPED_INTERNALVAR set_trapped_internalvar
extern struct value *value_of_trapped_internalvar ();
/* Hooks to read data from soff exec and core files,
and to describe the files. */
#define FILES_INFO_HOOK print_maps
/* Hook to call to print a typeless integer value, normally printed in decimal.
For convex, use hex instead if the number looks like an address. */
#define PRINT_TYPELESS_INTEGER decout
/* For the native compiler, variables for a particular lexical context
are listed after the beginning LBRAC instead of before in the
executables list of symbols. Using "gcc_compiled." to distinguish
between GCC and native compiler doesn't work on Convex because the
linker sorts the symbols to put "gcc_compiled." in the wrong place.
desc is nonzero for native, zero for gcc. */
#define VARIABLES_INSIDE_BLOCK(desc, gcc_p) (desc != 0)
/* Pcc occaisionally puts an SO where there should be an SOL. */
#define PCC_SOL_BROKEN
/* Describe the pointer in each stack frame to the previous stack frame
(its caller). */
/* FRAME_CHAIN takes a frame_info with a frame's nominal address in fi->frame,
and produces the frame's chain-pointer. */
/* (caller fp is saved at 8(fp)) */
#define FRAME_CHAIN(fi) (read_memory_integer ((fi)->frame + 8, 4))
/* Define other aspects of the stack frame. */
/* We need the boundaries of the text in the exec file, as a kludge,
for FRAMELESS_FUNCTION_INVOCATION and CALL_DUMMY_LOCATION. */
#define NEED_TEXT_START_END 1
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0.
On convex, check at the return address for `callq' -- if so, frameless,
otherwise, not. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
{ \
extern CORE_ADDR text_start, text_end; \
CORE_ADDR call_addr = SAVED_PC_AFTER_CALL (FI); \
(FRAMELESS) = (call_addr >= text_start && call_addr < text_end \
&& read_memory_integer (call_addr - 6, 1) == 0x22); \
}
#define FRAME_SAVED_PC(fi) (read_memory_integer ((fi)->frame, 4))
#define FRAME_ARGS_ADDRESS(fi) (read_memory_integer ((fi)->frame + 12, 4))
#define FRAME_LOCALS_ADDRESS(fi) (fi)->frame
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(numargs, fi) \
{ numargs = read_memory_integer (FRAME_ARGS_ADDRESS (fi) - 4, 4); \
if (numargs < 0 || numargs >= 256) numargs = -1;}
/* Return number of bytes at start of arglist that are not really args. */
#define FRAME_ARGS_SKIP 0
/* 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
ways in the stack frame. sp is even more special:
the address we return for it IS the sp for the next frame. */
/* Normal (short) frames save only PC, FP, (callee's) AP. To reasonably
handle gcc and pcc register variables, scan the code following the
call for the instructions the compiler inserts to reload register
variables from stack slots and record the stack slots as the saved
locations of those registers. This will occasionally identify some
random load as a saved register; this is harmless. vc does not
declare its register allocation actions in the stabs. */
#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
{ register int regnum; \
register int frame_length = /* 3 short, 2 long, 1 extended, 0 context */\
(read_memory_integer ((frame_info)->frame + 4, 4) >> 25) & 3; \
register CORE_ADDR frame_fp = \
read_memory_integer ((frame_info)->frame + 8, 4); \
register CORE_ADDR next_addr; \
memset (&frame_saved_regs, '\0', sizeof frame_saved_regs); \
(frame_saved_regs).regs[PC_REGNUM] = (frame_info)->frame + 0; \
(frame_saved_regs).regs[PS_REGNUM] = (frame_info)->frame + 4; \
(frame_saved_regs).regs[FP_REGNUM] = (frame_info)->frame + 8; \
(frame_saved_regs).regs[AP_REGNUM] = frame_fp + 12; \
next_addr = (frame_info)->frame + 12; \
if (frame_length < 3) \
for (regnum = A5_REGNUM; regnum < SP_REGNUM; ++regnum) \
(frame_saved_regs).regs[regnum] = (next_addr += 4); \
if (frame_length < 2) \
(frame_saved_regs).regs[SP_REGNUM] = (next_addr += 4); \
next_addr -= 4; \
if (frame_length < 3) \
for (regnum = S7_REGNUM; regnum < S0_REGNUM; ++regnum) \
(frame_saved_regs).regs[regnum] = (next_addr += 8); \
if (frame_length < 2) \
(frame_saved_regs).regs[S0_REGNUM] = (next_addr += 8); \
else \
(frame_saved_regs).regs[SP_REGNUM] = next_addr + 8; \
if (frame_length == 3) { \
CORE_ADDR pc = read_memory_integer ((frame_info)->frame, 4); \
int op, ix, disp; \
op = read_memory_integer (pc, 2); \
if ((op & 0xffc7) == 0x1480) pc += 4; /* add.w #-,sp */ \
else if ((op & 0xffc7) == 0x58c0) pc += 2; /* add.w #-,sp */ \
op = read_memory_integer (pc, 2); \
if ((op & 0xffc7) == 0x2a06) pc += 4; /* ld.w -,ap */ \
for (;;) { \
op = read_memory_integer (pc, 2); \
ix = (op >> 3) & 7; \
if ((op & 0xfcc0) == 0x2800) { /* ld.- -,ak */ \
regnum = SP_REGNUM - (op & 7); \
disp = read_memory_integer (pc + 2, 2); \
pc += 4;} \
else if ((op & 0xfcc0) == 0x2840) { /* ld.- -,ak */ \
regnum = SP_REGNUM - (op & 7); \
disp = read_memory_integer (pc + 2, 4); \
pc += 6;} \
if ((op & 0xfcc0) == 0x3000) { /* ld.- -,sk */ \
regnum = S0_REGNUM - (op & 7); \
disp = read_memory_integer (pc + 2, 2); \
pc += 4;} \
else if ((op & 0xfcc0) == 0x3040) { /* ld.- -,sk */ \
regnum = S0_REGNUM - (op & 7); \
disp = read_memory_integer (pc + 2, 4); \
pc += 6;} \
else if ((op & 0xff00) == 0x7100) { /* br crossjump */ \
pc += 2 * (char) op; \
continue;} \
else if (op == 0x0140) { /* jmp crossjump */ \
pc = read_memory_integer (pc + 2, 4); \
continue;} \
else break; \
if ((frame_saved_regs).regs[regnum]) \
break; \
if (ix == 7) disp += frame_fp; \
else if (ix == 6) disp += read_memory_integer (frame_fp + 12, 4); \
else if (ix != 0) break; \
(frame_saved_regs).regs[regnum] = \
disp - 8 + (1 << ((op >> 8) & 3)); \
if (regnum >= S7_REGNUM) \
(frame_saved_regs).regs[regnum - S0_REGNUM + s0_REGNUM] = \
disp - 4 + (1 << ((op >> 8) & 3)); \
} \
} \
}
/* Things needed for making the inferior call functions. */
#define CALL_DUMMY_LOCATION BEFORE_TEXT_END
/* Push an empty stack frame, to record the current PC, etc. */
#define PUSH_DUMMY_FRAME \
{ register CORE_ADDR sp = read_register (SP_REGNUM); \
register int regnum; \
char buf[8]; \
long word; \
for (regnum = S0_REGNUM; regnum >= S7_REGNUM; --regnum) { \
read_register_bytes (REGISTER_BYTE (regnum), buf, 8); \
sp = push_bytes (sp, buf, 8);} \
for (regnum = SP_REGNUM; regnum >= FP_REGNUM; --regnum) { \
word = read_register (regnum); \
sp = push_bytes (sp, &word, 4);} \
word = (read_register (PS_REGNUM) &~ (3<<25)) | (1<<25); \
sp = push_bytes (sp, &word, 4); \
word = read_register (PC_REGNUM); \
sp = push_bytes (sp, &word, 4); \
write_register (SP_REGNUM, sp); \
write_register (FP_REGNUM, sp); \
write_register (AP_REGNUM, sp);}
/* Discard from the stack the innermost frame, restoring all registers. */
#define POP_FRAME do {\
register CORE_ADDR fp = read_register (FP_REGNUM); \
register int regnum; \
register int frame_length = /* 3 short, 2 long, 1 extended, 0 context */ \
(read_memory_integer (fp + 4, 4) >> 25) & 3; \
char buf[8]; \
write_register (PC_REGNUM, read_memory_integer (fp, 4)); \
write_register (PS_REGNUM, read_memory_integer (fp += 4, 4)); \
write_register (FP_REGNUM, read_memory_integer (fp += 4, 4)); \
write_register (AP_REGNUM, read_memory_integer (fp += 4, 4)); \
if (frame_length < 3) \
for (regnum = A5_REGNUM; regnum < SP_REGNUM; ++regnum) \
write_register (regnum, read_memory_integer (fp += 4, 4)); \
if (frame_length < 2) \
write_register (SP_REGNUM, read_memory_integer (fp += 4, 4)); \
fp -= 4; \
if (frame_length < 3) \
for (regnum = S7_REGNUM; regnum < S0_REGNUM; ++regnum) { \
read_memory (fp += 8, buf, 8); \
write_register_bytes (REGISTER_BYTE (regnum), buf, 8);} \
if (frame_length < 2) { \
read_memory (fp += 8, buf, 8); \
write_register_bytes (REGISTER_BYTE (regnum), buf, 8);} \
else write_register (SP_REGNUM, fp + 8); \
flush_cached_frames (); \
} while (0)
/* This sequence of words is the instructions
mov sp,ap
pshea 69696969
calls 32323232
bkpt
Note this is 16 bytes. */
#define CALL_DUMMY {0x50860d4069696969LL,0x2140323232327d50LL}
#define CALL_DUMMY_LENGTH 16
#define CALL_DUMMY_START_OFFSET 0
/* Insert the specified number of args and function address
into a call sequence of the above form stored at DUMMYNAME. */
#define FIX_CALL_DUMMY(dummyname, pc, fun, nargs, args, type, gcc_p) \
{ *(int *)((char *) dummyname + 4) = nargs; \
*(int *)((char *) dummyname + 10) = fun; }
/* Defs to read soff symbol tables, see dbxread.c */
#define NUMBER_OF_SYMBOLS ((long) opthdr.o_nsyms)
#define STRING_TABLE_OFFSET ((long) filehdr.h_strptr)
#define SYMBOL_TABLE_OFFSET ((long) opthdr.o_symptr)
#define STRING_TABLE_SIZE ((long) filehdr.h_strsiz)
#define SIZE_OF_TEXT_SEGMENT ((long) txthdr.s_size)
#define ENTRY_POINT ((long) opthdr.o_entry)
#define READ_STRING_TABLE_SIZE(BUFFER) \
(BUFFER = STRING_TABLE_SIZE)
#define DECLARE_FILE_HEADERS \
FILEHDR filehdr; \
OPTHDR opthdr; \
SCNHDR txthdr
#define READ_FILE_HEADERS(DESC,NAME) \
{ \
int n; \
val = myread (DESC, &filehdr, sizeof filehdr); \
if (val < 0) \
perror_with_name (NAME); \
if (! IS_SOFF_MAGIC (filehdr.h_magic)) \
error ("%s: not an executable file.", NAME); \
lseek (DESC, 0L, 0); \
if (myread (DESC, &filehdr, sizeof filehdr) < 0) \
perror_with_name (NAME); \
if (myread (DESC, &opthdr, filehdr.h_opthdr) <= 0) \
perror_with_name (NAME); \
for (n = 0; n < filehdr.h_nscns; n++) \
{ \
if (myread (DESC, &txthdr, sizeof txthdr) < 0) \
perror_with_name (NAME); \
if ((txthdr.s_flags & S_TYPMASK) == S_TEXT) \
break; \
} \
}
/* OBSOLETE /* Definitions to make GDB run on Convex Unix (4bsd) */
/* OBSOLETE Copyright 1989, 1991, 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, Boston, MA 02111-1307, USA. *x/ */
/* OBSOLETE */
/* OBSOLETE #define TARGET_BYTE_ORDER BIG_ENDIAN */
/* OBSOLETE */
/* OBSOLETE /* There is come problem with the debugging symbols generated by the */
/* OBSOLETE compiler such that the debugging symbol for the first line of a */
/* OBSOLETE function overlap with the function prologue. *x/ */
/* OBSOLETE #define PROLOGUE_FIRSTLINE_OVERLAP */
/* OBSOLETE */
/* OBSOLETE /* When convex pcc says CHAR or SHORT, it provides the correct address. *x/ */
/* OBSOLETE */
/* OBSOLETE #define BELIEVE_PCC_PROMOTION 1 */
/* OBSOLETE */
/* OBSOLETE /* Symbol types to ignore. *x/ */
/* OBSOLETE /* 0xc4 is N_MONPT. Use the numeric value for the benefit of people */
/* OBSOLETE with (rather) old OS's. *x/ */
/* OBSOLETE #define IGNORE_SYMBOL(TYPE) \ */
/* OBSOLETE (((TYPE) & ~N_EXT) == N_TBSS \ */
/* OBSOLETE || ((TYPE) & ~N_EXT) == N_TDATA \ */
/* OBSOLETE || ((TYPE) & ~N_EXT) == 0xc4) */
/* OBSOLETE */
/* OBSOLETE /* Offset from address of function to start of its code. */
/* OBSOLETE Zero on most machines. *x/ */
/* OBSOLETE */
/* OBSOLETE #define FUNCTION_START_OFFSET 0 */
/* OBSOLETE */
/* OBSOLETE /* Advance PC across any function entry prologue instructions */
/* OBSOLETE to reach some "real" code. */
/* OBSOLETE Convex prolog is: */
/* OBSOLETE [sub.w #-,sp] in one of 3 possible sizes */
/* OBSOLETE [mov psw,- fc/vc main program prolog */
/* OBSOLETE and #-,- (skip it because the "mov psw" saves the */
/* OBSOLETE mov -,psw] T bit, so continue gets a surprise trap) */
/* OBSOLETE [and #-,sp] fc/vc O2 main program prolog */
/* OBSOLETE [ld.- -(ap),-] pcc/gcc register arg loads */
/* OBSOLETE *x/ */
/* OBSOLETE */
/* OBSOLETE extern CORE_ADDR convex_skip_prologue PARAMS ((CORE_ADDR pc)); */
/* OBSOLETE #define SKIP_PROLOGUE(pc) (convex_skip_prologue (pc)) */
/* OBSOLETE */
/* OBSOLETE /* Immediately after a function call, return the saved pc. */
/* OBSOLETE (ignore frame and return *$sp so we can handle both calls and callq) *x/ */
/* OBSOLETE */
/* OBSOLETE #define SAVED_PC_AFTER_CALL(frame) \ */
/* OBSOLETE read_memory_integer (read_register (SP_REGNUM), 4) */
/* OBSOLETE */
/* OBSOLETE /* Address of end of stack space. */
/* OBSOLETE This is ((USRSTACK + 0xfff) & -0x1000)) from <convex/vmparam.h> but */
/* OBSOLETE that expression depends on the kernel version; instead, fetch a */
/* OBSOLETE page-zero pointer and get it from that. This will be invalid if */
/* OBSOLETE they ever change the way bkpt signals are delivered. *x/ */
/* OBSOLETE */
/* OBSOLETE #define STACK_END_ADDR (0xfffff000 & *(unsigned *) 0x80000050) */
/* OBSOLETE */
/* OBSOLETE /* User-mode traps push an extended rtn block, */
/* OBSOLETE then fault with one of the following PCs *x/ */
/* OBSOLETE */
/* OBSOLETE #define is_trace_pc(pc) ((unsigned) ((pc) - (*(int *) 0x80000040)) <= 4) */
/* OBSOLETE #define is_arith_pc(pc) ((unsigned) ((pc) - (*(int *) 0x80000044)) <= 4) */
/* OBSOLETE #define is_break_pc(pc) ((unsigned) ((pc) - (*(int *) 0x80000050)) <= 4) */
/* OBSOLETE */
/* OBSOLETE /* We need to manipulate trap bits in the psw *x/ */
/* OBSOLETE */
/* OBSOLETE #define PSW_TRAP_FLAGS 0x69670000 */
/* OBSOLETE #define PSW_T_BIT 0x08000000 */
/* OBSOLETE #define PSW_S_BIT 0x01000000 */
/* OBSOLETE */
/* OBSOLETE /* Stack grows downward. *x/ */
/* OBSOLETE */
/* OBSOLETE #define INNER_THAN(lhs,rhs) ((lhs) < (rhs)) */
/* OBSOLETE */
/* OBSOLETE /* Sequence of bytes for breakpoint instruction. (bkpt) *x/ */
/* OBSOLETE */
/* OBSOLETE #define BREAKPOINT {0x7d,0x50} */
/* OBSOLETE */
/* OBSOLETE /* Amount PC must be decremented by after a breakpoint. */
/* OBSOLETE This is often the number of bytes in BREAKPOINT but not always. */
/* OBSOLETE (The break PC needs to be decremented by 2, but we do it when the */
/* OBSOLETE break frame is recognized and popped. That way gdb can tell breaks */
/* OBSOLETE from trace traps with certainty.) *x/ */
/* 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. *x/ */
/* OBSOLETE */
/* OBSOLETE #define REGISTER_SIZE 8 */
/* OBSOLETE */
/* OBSOLETE /* Number of machine registers *x/ */
/* OBSOLETE */
/* OBSOLETE #define NUM_REGS 26 */
/* OBSOLETE */
/* OBSOLETE /* Initializer for an array of names of registers. */
/* OBSOLETE There should be NUM_REGS strings in this initializer. *x/ */
/* OBSOLETE */
/* OBSOLETE #define REGISTER_NAMES {"pc","psw","fp","ap","a5","a4","a3","a2","a1","sp",\ */
/* OBSOLETE "s7","s6","s5","s4","s3","s2","s1","s0",\ */
/* OBSOLETE "S7","S6","S5","S4","S3","S2","S1","S0"} */
/* 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. *x/ */
/* OBSOLETE */
/* OBSOLETE #define S0_REGNUM 25 /* the real S regs *x/ */
/* OBSOLETE #define S7_REGNUM 18 */
/* OBSOLETE #define s0_REGNUM 17 /* low-order halves of S regs *x/ */
/* OBSOLETE #define s7_REGNUM 10 */
/* OBSOLETE #define SP_REGNUM 9 /* A regs *x/ */
/* OBSOLETE #define A1_REGNUM 8 */
/* OBSOLETE #define A5_REGNUM 4 */
/* OBSOLETE #define AP_REGNUM 3 */
/* OBSOLETE #define FP_REGNUM 2 /* Contains address of executing stack frame *x/ */
/* OBSOLETE #define PS_REGNUM 1 /* Contains processor status *x/ */
/* OBSOLETE #define PC_REGNUM 0 /* Contains program counter *x/ */
/* OBSOLETE */
/* OBSOLETE /* convert dbx stab register number (from `r' declaration) to a gdb REGNUM *x/ */
/* OBSOLETE */
/* OBSOLETE #define STAB_REG_TO_REGNUM(value) \ */
/* OBSOLETE ((value) < 8 ? S0_REGNUM - (value) : SP_REGNUM - ((value) - 8)) */
/* OBSOLETE */
/* OBSOLETE /* Vector register numbers, not handled as ordinary regs. */
/* OBSOLETE They are treated as convenience variables whose values are read */
/* OBSOLETE from the inferior when needed. *x/ */
/* OBSOLETE */
/* OBSOLETE #define V0_REGNUM 0 */
/* OBSOLETE #define V7_REGNUM 7 */
/* OBSOLETE #define VM_REGNUM 8 */
/* OBSOLETE #define VS_REGNUM 9 */
/* OBSOLETE #define VL_REGNUM 10 */
/* OBSOLETE */
/* OBSOLETE /* Total amount of space needed to store our copies of the machine's */
/* OBSOLETE register state, the array `registers'. *x/ */
/* OBSOLETE #define REGISTER_BYTES (4*10 + 8*8) */
/* OBSOLETE */
/* OBSOLETE /* Index within `registers' of the first byte of the space for */
/* OBSOLETE register N. */
/* OBSOLETE NB: must match structure of struct syscall_context for correct operation *x/ */
/* OBSOLETE */
/* OBSOLETE #define REGISTER_BYTE(N) ((N) < s7_REGNUM ? 4*(N) : \ */
/* OBSOLETE (N) < S7_REGNUM ? 44 + 8 * ((N)-s7_REGNUM) : \ */
/* OBSOLETE 40 + 8 * ((N)-S7_REGNUM)) */
/* OBSOLETE */
/* OBSOLETE /* Number of bytes of storage in the actual machine representation */
/* OBSOLETE for register N. *x/ */
/* OBSOLETE */
/* OBSOLETE #define REGISTER_RAW_SIZE(N) ((N) < S7_REGNUM ? 4 : 8) */
/* OBSOLETE */
/* OBSOLETE /* Number of bytes of storage in the program's representation */
/* OBSOLETE for register N. *x/ */
/* OBSOLETE */
/* OBSOLETE #define REGISTER_VIRTUAL_SIZE(N) REGISTER_RAW_SIZE(N) */
/* OBSOLETE */
/* OBSOLETE /* Largest value REGISTER_RAW_SIZE can have. *x/ */
/* OBSOLETE */
/* OBSOLETE #define MAX_REGISTER_RAW_SIZE 8 */
/* OBSOLETE */
/* OBSOLETE /* Largest value REGISTER_VIRTUAL_SIZE can have. *x/ */
/* 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. *x/ */
/* OBSOLETE */
/* OBSOLETE #define REGISTER_VIRTUAL_TYPE(N) \ */
/* OBSOLETE ((N) < S7_REGNUM ? builtin_type_int : builtin_type_long_long) */
/* 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. *x/ */
/* OBSOLETE */
/* OBSOLETE #define STORE_STRUCT_RETURN(ADDR, SP) \ */
/* OBSOLETE { write_register (A1_REGNUM, (ADDR)); } */
/* 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. *x/ */
/* OBSOLETE */
/* OBSOLETE #define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \ */
/* OBSOLETE memcpy (VALBUF, &((char *) REGBUF) [REGISTER_BYTE (S0_REGNUM) + \ */
/* OBSOLETE 8 - TYPE_LENGTH (TYPE)],\ */
/* OBSOLETE TYPE_LENGTH (TYPE)) */
/* OBSOLETE */
/* OBSOLETE /* Write into appropriate registers a function return value */
/* OBSOLETE of type TYPE, given in virtual format. *x/ */
/* OBSOLETE */
/* OBSOLETE #define STORE_RETURN_VALUE(TYPE,VALBUF) \ */
/* OBSOLETE write_register_bytes (REGISTER_BYTE (S0_REGNUM), VALBUF, 8) */
/* 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). *x/ */
/* OBSOLETE */
/* OBSOLETE #define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \ */
/* OBSOLETE (*(int *) & ((char *) REGBUF) [REGISTER_BYTE (s0_REGNUM)]) */
/* OBSOLETE */
/* OBSOLETE /* Define trapped internal variable hooks to read and write */
/* OBSOLETE vector and communication registers. *x/ */
/* OBSOLETE */
/* OBSOLETE #define IS_TRAPPED_INTERNALVAR is_trapped_internalvar */
/* OBSOLETE #define VALUE_OF_TRAPPED_INTERNALVAR value_of_trapped_internalvar */
/* OBSOLETE #define SET_TRAPPED_INTERNALVAR set_trapped_internalvar */
/* OBSOLETE */
/* OBSOLETE extern struct value *value_of_trapped_internalvar (); */
/* OBSOLETE */
/* OBSOLETE /* Hooks to read data from soff exec and core files, */
/* OBSOLETE and to describe the files. *x/ */
/* OBSOLETE */
/* OBSOLETE #define FILES_INFO_HOOK print_maps */
/* OBSOLETE */
/* OBSOLETE /* Hook to call to print a typeless integer value, normally printed in decimal. */
/* OBSOLETE For convex, use hex instead if the number looks like an address. *x/ */
/* OBSOLETE */
/* OBSOLETE #define PRINT_TYPELESS_INTEGER decout */
/* OBSOLETE */
/* OBSOLETE /* For the native compiler, variables for a particular lexical context */
/* OBSOLETE are listed after the beginning LBRAC instead of before in the */
/* OBSOLETE executables list of symbols. Using "gcc_compiled." to distinguish */
/* OBSOLETE between GCC and native compiler doesn't work on Convex because the */
/* OBSOLETE linker sorts the symbols to put "gcc_compiled." in the wrong place. */
/* OBSOLETE desc is nonzero for native, zero for gcc. *x/ */
/* OBSOLETE #define VARIABLES_INSIDE_BLOCK(desc, gcc_p) (desc != 0) */
/* OBSOLETE */
/* OBSOLETE /* Pcc occaisionally puts an SO where there should be an SOL. *x/ */
/* OBSOLETE #define PCC_SOL_BROKEN */
/* OBSOLETE */
/* OBSOLETE /* Describe the pointer in each stack frame to the previous stack frame */
/* OBSOLETE (its caller). *x/ */
/* OBSOLETE */
/* OBSOLETE /* FRAME_CHAIN takes a frame_info with a frame's nominal address in fi->frame, */
/* OBSOLETE and produces the frame's chain-pointer. *x/ */
/* OBSOLETE */
/* OBSOLETE /* (caller fp is saved at 8(fp)) *x/ */
/* OBSOLETE */
/* OBSOLETE #define FRAME_CHAIN(fi) (read_memory_integer ((fi)->frame + 8, 4)) */
/* OBSOLETE */
/* OBSOLETE /* Define other aspects of the stack frame. *x/ */
/* OBSOLETE */
/* OBSOLETE /* We need the boundaries of the text in the exec file, as a kludge, */
/* OBSOLETE for FRAMELESS_FUNCTION_INVOCATION and CALL_DUMMY_LOCATION. *x/ */
/* OBSOLETE */
/* OBSOLETE #define NEED_TEXT_START_END 1 */
/* 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 On convex, check at the return address for `callq' -- if so, frameless, */
/* OBSOLETE otherwise, not. *x/ */
/* OBSOLETE */
/* OBSOLETE extern int convex_frameless_function_invocation PARAMS ((struct frame_info *fi)); */
/* OBSOLETE #define FRAMELESS_FUNCTION_INVOCATION(FI) (convex_frameless_function_invocatio (FI)) */
/* OBSOLETE */
/* OBSOLETE #define FRAME_SAVED_PC(fi) (read_memory_integer ((fi)->frame, 4)) */
/* OBSOLETE */
/* OBSOLETE #define FRAME_ARGS_ADDRESS(fi) (read_memory_integer ((fi)->frame + 12, 4)) */
/* OBSOLETE */
/* 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. *x/ */
/* OBSOLETE */
/* OBSOLETE extern int convex_frame_num_args PARAMS ((struct frame_info *fi)); */
/* OBSOLETE #define FRAME_NUM_ARGS(fi) (convex_frame_num_args ((fi))) */
/* OBSOLETE */
/* OBSOLETE /* Return number of bytes at start of arglist that are not really args. *x/ */
/* 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. *x/ */
/* OBSOLETE */
/* OBSOLETE /* Normal (short) frames save only PC, FP, (callee's) AP. To reasonably */
/* OBSOLETE handle gcc and pcc register variables, scan the code following the */
/* OBSOLETE call for the instructions the compiler inserts to reload register */
/* OBSOLETE variables from stack slots and record the stack slots as the saved */
/* OBSOLETE locations of those registers. This will occasionally identify some */
/* OBSOLETE random load as a saved register; this is harmless. vc does not */
/* OBSOLETE declare its register allocation actions in the stabs. *x/ */
/* OBSOLETE */
/* OBSOLETE #define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \ */
/* OBSOLETE { register int regnum; \ */
/* OBSOLETE register int frame_length = /* 3 short, 2 long, 1 extended, 0 context *x/\ */
/* OBSOLETE (read_memory_integer ((frame_info)->frame + 4, 4) >> 25) & 3; \ */
/* OBSOLETE register CORE_ADDR frame_fp = \ */
/* OBSOLETE read_memory_integer ((frame_info)->frame + 8, 4); \ */
/* OBSOLETE register CORE_ADDR next_addr; \ */
/* OBSOLETE memset (&frame_saved_regs, '\0', sizeof frame_saved_regs); \ */
/* OBSOLETE (frame_saved_regs).regs[PC_REGNUM] = (frame_info)->frame + 0; \ */
/* OBSOLETE (frame_saved_regs).regs[PS_REGNUM] = (frame_info)->frame + 4; \ */
/* OBSOLETE (frame_saved_regs).regs[FP_REGNUM] = (frame_info)->frame + 8; \ */
/* OBSOLETE (frame_saved_regs).regs[AP_REGNUM] = frame_fp + 12; \ */
/* OBSOLETE next_addr = (frame_info)->frame + 12; \ */
/* OBSOLETE if (frame_length < 3) \ */
/* OBSOLETE for (regnum = A5_REGNUM; regnum < SP_REGNUM; ++regnum) \ */
/* OBSOLETE (frame_saved_regs).regs[regnum] = (next_addr += 4); \ */
/* OBSOLETE if (frame_length < 2) \ */
/* OBSOLETE (frame_saved_regs).regs[SP_REGNUM] = (next_addr += 4); \ */
/* OBSOLETE next_addr -= 4; \ */
/* OBSOLETE if (frame_length < 3) \ */
/* OBSOLETE for (regnum = S7_REGNUM; regnum < S0_REGNUM; ++regnum) \ */
/* OBSOLETE (frame_saved_regs).regs[regnum] = (next_addr += 8); \ */
/* OBSOLETE if (frame_length < 2) \ */
/* OBSOLETE (frame_saved_regs).regs[S0_REGNUM] = (next_addr += 8); \ */
/* OBSOLETE else \ */
/* OBSOLETE (frame_saved_regs).regs[SP_REGNUM] = next_addr + 8; \ */
/* OBSOLETE if (frame_length == 3) { \ */
/* OBSOLETE CORE_ADDR pc = read_memory_integer ((frame_info)->frame, 4); \ */
/* OBSOLETE int op, ix, disp; \ */
/* OBSOLETE op = read_memory_integer (pc, 2); \ */
/* OBSOLETE if ((op & 0xffc7) == 0x1480) pc += 4; /* add.w #-,sp *x/ \ */
/* OBSOLETE else if ((op & 0xffc7) == 0x58c0) pc += 2; /* add.w #-,sp *x/ \ */
/* OBSOLETE op = read_memory_integer (pc, 2); \ */
/* OBSOLETE if ((op & 0xffc7) == 0x2a06) pc += 4; /* ld.w -,ap *x/ \ */
/* OBSOLETE for (;;) { \ */
/* OBSOLETE op = read_memory_integer (pc, 2); \ */
/* OBSOLETE ix = (op >> 3) & 7; \ */
/* OBSOLETE if ((op & 0xfcc0) == 0x2800) { /* ld.- -,ak *x/ \ */
/* OBSOLETE regnum = SP_REGNUM - (op & 7); \ */
/* OBSOLETE disp = read_memory_integer (pc + 2, 2); \ */
/* OBSOLETE pc += 4;} \ */
/* OBSOLETE else if ((op & 0xfcc0) == 0x2840) { /* ld.- -,ak *x/ \ */
/* OBSOLETE regnum = SP_REGNUM - (op & 7); \ */
/* OBSOLETE disp = read_memory_integer (pc + 2, 4); \ */
/* OBSOLETE pc += 6;} \ */
/* OBSOLETE if ((op & 0xfcc0) == 0x3000) { /* ld.- -,sk *x/ \ */
/* OBSOLETE regnum = S0_REGNUM - (op & 7); \ */
/* OBSOLETE disp = read_memory_integer (pc + 2, 2); \ */
/* OBSOLETE pc += 4;} \ */
/* OBSOLETE else if ((op & 0xfcc0) == 0x3040) { /* ld.- -,sk *x/ \ */
/* OBSOLETE regnum = S0_REGNUM - (op & 7); \ */
/* OBSOLETE disp = read_memory_integer (pc + 2, 4); \ */
/* OBSOLETE pc += 6;} \ */
/* OBSOLETE else if ((op & 0xff00) == 0x7100) { /* br crossjump *x/ \ */
/* OBSOLETE pc += 2 * (char) op; \ */
/* OBSOLETE continue;} \ */
/* OBSOLETE else if (op == 0x0140) { /* jmp crossjump *x/ \ */
/* OBSOLETE pc = read_memory_integer (pc + 2, 4); \ */
/* OBSOLETE continue;} \ */
/* OBSOLETE else break; \ */
/* OBSOLETE if ((frame_saved_regs).regs[regnum]) \ */
/* OBSOLETE break; \ */
/* OBSOLETE if (ix == 7) disp += frame_fp; \ */
/* OBSOLETE else if (ix == 6) disp += read_memory_integer (frame_fp + 12, 4); \ */
/* OBSOLETE else if (ix != 0) break; \ */
/* OBSOLETE (frame_saved_regs).regs[regnum] = \ */
/* OBSOLETE disp - 8 + (1 << ((op >> 8) & 3)); \ */
/* OBSOLETE if (regnum >= S7_REGNUM) \ */
/* OBSOLETE (frame_saved_regs).regs[regnum - S0_REGNUM + s0_REGNUM] = \ */
/* OBSOLETE disp - 4 + (1 << ((op >> 8) & 3)); \ */
/* OBSOLETE } \ */
/* OBSOLETE } \ */
/* OBSOLETE } */
/* OBSOLETE */
/* OBSOLETE /* Things needed for making the inferior call functions. *x/ */
/* OBSOLETE */
/* OBSOLETE #define CALL_DUMMY_LOCATION BEFORE_TEXT_END */
/* OBSOLETE */
/* OBSOLETE /* Push an empty stack frame, to record the current PC, etc. *x/ */
/* OBSOLETE */
/* OBSOLETE #define PUSH_DUMMY_FRAME \ */
/* OBSOLETE { register CORE_ADDR sp = read_register (SP_REGNUM); \ */
/* OBSOLETE register int regnum; \ */
/* OBSOLETE char buf[8]; \ */
/* OBSOLETE long word; \ */
/* OBSOLETE for (regnum = S0_REGNUM; regnum >= S7_REGNUM; --regnum) { \ */
/* OBSOLETE read_register_bytes (REGISTER_BYTE (regnum), buf, 8); \ */
/* OBSOLETE sp = push_bytes (sp, buf, 8);} \ */
/* OBSOLETE for (regnum = SP_REGNUM; regnum >= FP_REGNUM; --regnum) { \ */
/* OBSOLETE word = read_register (regnum); \ */
/* OBSOLETE sp = push_bytes (sp, &word, 4);} \ */
/* OBSOLETE word = (read_register (PS_REGNUM) &~ (3<<25)) | (1<<25); \ */
/* OBSOLETE sp = push_bytes (sp, &word, 4); \ */
/* OBSOLETE word = read_register (PC_REGNUM); \ */
/* OBSOLETE sp = push_bytes (sp, &word, 4); \ */
/* OBSOLETE write_register (SP_REGNUM, sp); \ */
/* OBSOLETE write_register (FP_REGNUM, sp); \ */
/* OBSOLETE write_register (AP_REGNUM, sp);} */
/* OBSOLETE */
/* OBSOLETE /* Discard from the stack the innermost frame, restoring all registers. *x/ */
/* OBSOLETE */
/* OBSOLETE #define POP_FRAME do {\ */
/* OBSOLETE register CORE_ADDR fp = read_register (FP_REGNUM); \ */
/* OBSOLETE register int regnum; \ */
/* OBSOLETE register int frame_length = /* 3 short, 2 long, 1 extended, 0 context *x/ \ */
/* OBSOLETE (read_memory_integer (fp + 4, 4) >> 25) & 3; \ */
/* OBSOLETE char buf[8]; \ */
/* OBSOLETE write_register (PC_REGNUM, read_memory_integer (fp, 4)); \ */
/* OBSOLETE write_register (PS_REGNUM, read_memory_integer (fp += 4, 4)); \ */
/* OBSOLETE write_register (FP_REGNUM, read_memory_integer (fp += 4, 4)); \ */
/* OBSOLETE write_register (AP_REGNUM, read_memory_integer (fp += 4, 4)); \ */
/* OBSOLETE if (frame_length < 3) \ */
/* OBSOLETE for (regnum = A5_REGNUM; regnum < SP_REGNUM; ++regnum) \ */
/* OBSOLETE write_register (regnum, read_memory_integer (fp += 4, 4)); \ */
/* OBSOLETE if (frame_length < 2) \ */
/* OBSOLETE write_register (SP_REGNUM, read_memory_integer (fp += 4, 4)); \ */
/* OBSOLETE fp -= 4; \ */
/* OBSOLETE if (frame_length < 3) \ */
/* OBSOLETE for (regnum = S7_REGNUM; regnum < S0_REGNUM; ++regnum) { \ */
/* OBSOLETE read_memory (fp += 8, buf, 8); \ */
/* OBSOLETE write_register_bytes (REGISTER_BYTE (regnum), buf, 8);} \ */
/* OBSOLETE if (frame_length < 2) { \ */
/* OBSOLETE read_memory (fp += 8, buf, 8); \ */
/* OBSOLETE write_register_bytes (REGISTER_BYTE (regnum), buf, 8);} \ */
/* OBSOLETE else write_register (SP_REGNUM, fp + 8); \ */
/* OBSOLETE flush_cached_frames (); \ */
/* OBSOLETE } while (0) */
/* OBSOLETE */
/* OBSOLETE /* This sequence of words is the instructions */
/* OBSOLETE mov sp,ap */
/* OBSOLETE pshea 69696969 */
/* OBSOLETE calls 32323232 */
/* OBSOLETE bkpt */
/* OBSOLETE Note this is 16 bytes. *x/ */
/* OBSOLETE */
/* OBSOLETE #define CALL_DUMMY {0x50860d4069696969LL,0x2140323232327d50LL} */
/* OBSOLETE */
/* OBSOLETE #define CALL_DUMMY_LENGTH 16 */
/* OBSOLETE */
/* 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. *x/ */
/* OBSOLETE */
/* OBSOLETE #define FIX_CALL_DUMMY(dummyname, pc, fun, nargs, args, type, gcc_p) \ */
/* OBSOLETE { *(int *)((char *) dummyname + 4) = nargs; \ */
/* OBSOLETE *(int *)((char *) dummyname + 10) = fun; } */
/* OBSOLETE */
/* OBSOLETE /* Defs to read soff symbol tables, see dbxread.c *x/ */
/* OBSOLETE */
/* OBSOLETE #define NUMBER_OF_SYMBOLS ((long) opthdr.o_nsyms) */
/* OBSOLETE #define STRING_TABLE_OFFSET ((long) filehdr.h_strptr) */
/* OBSOLETE #define SYMBOL_TABLE_OFFSET ((long) opthdr.o_symptr) */
/* OBSOLETE #define STRING_TABLE_SIZE ((long) filehdr.h_strsiz) */
/* OBSOLETE #define SIZE_OF_TEXT_SEGMENT ((long) txthdr.s_size) */
/* OBSOLETE #define ENTRY_POINT ((long) opthdr.o_entry) */
/* OBSOLETE */
/* OBSOLETE #define READ_STRING_TABLE_SIZE(BUFFER) \ */
/* OBSOLETE (BUFFER = STRING_TABLE_SIZE) */
/* OBSOLETE */
/* OBSOLETE #define DECLARE_FILE_HEADERS \ */
/* OBSOLETE FILEHDR filehdr; \ */
/* OBSOLETE OPTHDR opthdr; \ */
/* OBSOLETE SCNHDR txthdr */
/* OBSOLETE */
/* OBSOLETE #define READ_FILE_HEADERS(DESC,NAME) \ */
/* OBSOLETE { \ */
/* OBSOLETE int n; \ */
/* OBSOLETE val = myread (DESC, &filehdr, sizeof filehdr); \ */
/* OBSOLETE if (val < 0) \ */
/* OBSOLETE perror_with_name (NAME); \ */
/* OBSOLETE if (! IS_SOFF_MAGIC (filehdr.h_magic)) \ */
/* OBSOLETE error ("%s: not an executable file.", NAME); \ */
/* OBSOLETE lseek (DESC, 0L, 0); \ */
/* OBSOLETE if (myread (DESC, &filehdr, sizeof filehdr) < 0) \ */
/* OBSOLETE perror_with_name (NAME); \ */
/* OBSOLETE if (myread (DESC, &opthdr, filehdr.h_opthdr) <= 0) \ */
/* OBSOLETE perror_with_name (NAME); \ */
/* OBSOLETE for (n = 0; n < filehdr.h_nscns; n++) \ */
/* OBSOLETE { \ */
/* OBSOLETE if (myread (DESC, &txthdr, sizeof txthdr) < 0) \ */
/* OBSOLETE perror_with_name (NAME); \ */
/* OBSOLETE if ((txthdr.s_flags & S_TYPMASK) == S_TEXT) \ */
/* OBSOLETE break; \ */
/* OBSOLETE } \ */
/* OBSOLETE } */

View File

@@ -1,35 +1,35 @@
/* Definitions to make GDB run on Convex Unix (4bsd)
Copyright 1989, 1991, 1992, 1996 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define HOST_BYTE_ORDER BIG_ENDIAN
#define ATTACH_DETACH
#define HAVE_WAIT_STRUCT
#define NO_SIGINTERRUPT
/* Use SIGCONT rather than SIGTSTP because convex Unix occasionally
turkeys SIGTSTP. I think. */
#define STOP_SIGNAL SIGCONT
/* Hook to call after creating inferior process. Now init_trace_fun
is in the same place. So re-write this to use the init_trace_fun
(making convex a debugging target). FIXME. */
#define CREATE_INFERIOR_HOOK create_inferior_hook
/* OBSOLETE /* Definitions to make GDB run on Convex Unix (4bsd) */
/* OBSOLETE Copyright 1989, 1991, 1992, 1996 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, Boston, MA 02111-1307, USA. *x/ */
/* OBSOLETE */
/* OBSOLETE #define HOST_BYTE_ORDER BIG_ENDIAN */
/* OBSOLETE */
/* OBSOLETE #define ATTACH_DETACH */
/* OBSOLETE #define HAVE_WAIT_STRUCT */
/* OBSOLETE #define NO_SIGINTERRUPT */
/* OBSOLETE */
/* OBSOLETE /* Use SIGCONT rather than SIGTSTP because convex Unix occasionally */
/* OBSOLETE turkeys SIGTSTP. I think. *x/ */
/* OBSOLETE */
/* OBSOLETE #define STOP_SIGNAL SIGCONT */
/* OBSOLETE */
/* OBSOLETE /* Hook to call after creating inferior process. Now init_trace_fun */
/* OBSOLETE is in the same place. So re-write this to use the init_trace_fun */
/* OBSOLETE (making convex a debugging target). FIXME. *x/ */
/* OBSOLETE */
/* OBSOLETE #define CREATE_INFERIOR_HOOK create_inferior_hook */

View File

@@ -1,5 +1,5 @@
/* Target-specific definition for the Mitsubishi D10V
Copyright (C) 1996 Free Software Foundation, Inc.
Copyright (C) 1996,1999 Free Software Foundation, Inc.
This file is part of GDB.
@@ -19,10 +19,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Contributed by Martin Hunt, hunt@cygnus.com */
#define GDB_TARGET_IS_D10V
#define GDB_MULTI_ARCH 1
/* #define GDB_TARGET_IS_D10V - moved to gdbarch.h */
/* Define the bit, byte, and word ordering of the machine. */
#if !GDB_MULTI_ARCH
#define TARGET_BYTE_ORDER BIG_ENDIAN
/* Offset from address of function to start of its code.
@@ -30,48 +34,30 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define FUNCTION_START_OFFSET 0
/* these are the addresses the D10V-EVA board maps data */
/* and instruction memory to. */
#define DMEM_START 0x0000000
#define IMEM_START 0x1000000
#define STACK_START 0x0007ffe
#ifdef __STDC__ /* Forward decls for prototypes */
struct frame_info;
struct frame_saved_regs;
struct type;
struct value;
#endif
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
extern CORE_ADDR d10v_skip_prologue ();
#define SKIP_PROLOGUE(ip) \
{(ip) = d10v_skip_prologue(ip);}
#define SKIP_PROLOGUE(ip) (d10v_skip_prologue (ip))
/* Stack grows downward. */
#define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
#define INNER_THAN(lhs,rhs) (core_addr_lessthan ((lhs), (rhs)))
/* for a breakpoint, use "dbt || nop" */
#define BREAKPOINT {0x2f, 0x90, 0x5e, 0x00}
extern breakpoint_from_pc_fn d10v_breakpoint_from_pc;
#define BREAKPOINT_FROM_PC(PCPTR,LENPTR) (d10v_breakpoint_from_pc ((PCPTR), (LENPTR)))
/* If your kernel resets the pc after the trap happens you may need to
define this before including this file. */
#define DECR_PC_AFTER_BREAK 4
#define REGISTER_NAMES \
{ "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \
"r8", "r9", "r10","r11","r12", "r13", "r14","r15",\
"psw","bpsw","pc","bpc", "cr4", "cr5", "cr6", "rpt_c",\
"rpt_s","rpt_e", "mod_s", "mod_e", "cr12", "cr13", "iba", "cr15",\
"imap0","imap1","dmap","a0", "a1"\
}
extern char *d10v_register_name PARAMS ((int reg_nr));
#define REGISTER_NAME(NR) (d10v_register_name (NR))
#define NUM_REGS 37
#endif /* GDB_MULTI_ARCH */
/* 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,
@@ -79,34 +65,43 @@ extern CORE_ADDR d10v_skip_prologue ();
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. */
/* Used by both d10v-tdep.c and remote-d10v.c */
#define R0_REGNUM 0
#define LR_REGNUM 13
#if !GDB_MULTI_ARCH
#define SP_REGNUM 15
#define FP_REGNUM 11
#define PC_REGNUM 18
#endif
#define PSW_REGNUM 16
#define IMAP0_REGNUM 32
#define IMAP1_REGNUM 33
#define DMAP_REGNUM 34
#define A0_REGNUM 35
#if !GDB_MULTI_ARCH
/* ??? */
#define REGISTER_SIZE 2
/* Say how much memory is needed to store a copy of the register set */
#define REGISTER_BYTES ((NUM_REGS-2)*2+16)
#define REGISTER_BYTES ((37/*NUM_REGS*/-2)*2+16)
/* Index within `registers' of the first byte of the space for
register N. */
#define REGISTER_BYTE(N) \
( ((N) > A0_REGNUM) ? ( ((N)-A0_REGNUM)*8 + A0_REGNUM*2 ) : ((N) * 2) )
extern int d10v_register_byte PARAMS ((int reg_nr));
#define REGISTER_BYTE(N) (d10v_register_byte (N))
/* Number of bytes of storage in the actual machine representation
for register N. */
#define REGISTER_RAW_SIZE(N) ( ((N) >= A0_REGNUM) ? 8 : 2 )
extern int d10v_register_raw_size PARAMS ((int reg_nr));
#define REGISTER_RAW_SIZE(N) (d10v_register_raw_size (N))
/* Number of bytes of storage in the program's representation
for register N. */
#define REGISTER_VIRTUAL_SIZE(N) ( ((N) >= A0_REGNUM) ? 8 : ( ((N) == PC_REGNUM || (N) == SP_REGNUM) ? 4 : 2 ))
extern int d10v_register_virtual_size PARAMS ((int reg_nr));
#define REGISTER_VIRTUAL_SIZE(N) (d10v_register_virtual_size (N))
/* Largest value REGISTER_RAW_SIZE can have. */
@@ -119,39 +114,33 @@ extern CORE_ADDR d10v_skip_prologue ();
/* Return the GDB type object for the "standard" data type
of data in register N. */
#define REGISTER_VIRTUAL_TYPE(N) \
( ((N) < A0_REGNUM ) ? ((N) == PC_REGNUM || (N) == SP_REGNUM ? builtin_type_long : builtin_type_short) : builtin_type_long_long)
extern struct type *d10v_register_virtual_type PARAMS ((int reg_nr));
#define REGISTER_VIRTUAL_TYPE(N) (d10v_register_virtual_type (N))
/* convert $pc and $sp to/from virtual addresses */
#define REGISTER_CONVERTIBLE(N) ((N) == PC_REGNUM || (N) == SP_REGNUM)
extern int d10v_register_convertible PARAMS ((int nr));
extern void d10v_register_convert_to_virtual PARAMS ((int regnum, struct type *type, char *from, char *to));
extern void d10v_register_convert_to_raw PARAMS ((struct type *type, int regnum, char *from, char *to));
#define REGISTER_CONVERTIBLE(N) (d10v_register_convertible ((N)))
#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,TYPE,FROM,TO) \
{ \
ULONGEST x = extract_unsigned_integer ((FROM), REGISTER_RAW_SIZE (REGNUM)); \
if (REGNUM == PC_REGNUM) x = (x << 2) | IMEM_START; \
else x |= DMEM_START; \
store_unsigned_integer ((TO), TYPE_LENGTH(TYPE), x); \
}
d10v_register_convert_to_virtual ((REGNUM), (TYPE), (FROM), (TO))
#define REGISTER_CONVERT_TO_RAW(TYPE,REGNUM,FROM,TO) \
{ \
ULONGEST x = extract_unsigned_integer ((FROM), TYPE_LENGTH(TYPE)); \
x &= 0x3ffff; \
if (REGNUM == PC_REGNUM) x >>= 2; \
store_unsigned_integer ((TO), 2, x); \
}
d10v_register_convert_to_raw ((TYPE), (REGNUM), (FROM), (TO))
#define D10V_MAKE_DADDR(x) ((x) | DMEM_START)
#define D10V_MAKE_IADDR(x) (((x) << 2) | IMEM_START)
extern CORE_ADDR d10v_make_daddr PARAMS ((CORE_ADDR x));
#define D10V_MAKE_DADDR(x) (d10v_make_daddr (x))
extern CORE_ADDR d10v_make_iaddr PARAMS ((CORE_ADDR x));
#define D10V_MAKE_IADDR(x) (d10v_make_iaddr (x))
#define D10V_DADDR_P(X) (((X) & 0x3000000) == DMEM_START)
#define D10V_IADDR_P(X) (((X) & 0x3000000) == IMEM_START)
extern int d10v_daddr_p PARAMS ((CORE_ADDR x));
#define D10V_DADDR_P(X) (d10v_daddr_p (X))
extern int d10v_iaddr_p PARAMS ((CORE_ADDR x));
#define D10V_IADDR_P(X) (d10v_iaddr_p (X))
#define D10V_CONVERT_IADDR_TO_RAW(X) (((X) >> 2) & 0xffff)
#define D10V_CONVERT_DADDR_TO_RAW(X) ((X) & 0xffff)
#define ARG1_REGNUM R0_REGNUM
#define ARGN_REGNUM 3
#define RET1_REGNUM R0_REGNUM
extern CORE_ADDR d10v_convert_daddr_to_raw PARAMS ((CORE_ADDR x));
#define D10V_CONVERT_DADDR_TO_RAW(X) (d10v_convert_daddr_to_raw (X))
extern CORE_ADDR d10v_convert_iaddr_to_raw PARAMS ((CORE_ADDR x));
#define D10V_CONVERT_IADDR_TO_RAW(X) (d10v_convert_iaddr_to_raw (X))
/* Store the address of the place in which to copy the structure the
subroutine will return. This is called from call_function.
@@ -159,8 +148,8 @@ extern CORE_ADDR d10v_skip_prologue ();
We store structs through a pointer passed in the first Argument
register. */
#define STORE_STRUCT_RETURN(ADDR, SP) \
{ write_register (ARG1_REGNUM, (ADDR)); }
extern void d10v_store_struct_return PARAMS ((CORE_ADDR addr, CORE_ADDR sp));
#define STORE_STRUCT_RETURN(ADDR, SP) d10v_store_struct_return ((ADDR), (SP))
/* Write into appropriate registers a function return value
@@ -168,16 +157,16 @@ extern CORE_ADDR d10v_skip_prologue ();
Things always get returned in RET1_REGNUM, RET2_REGNUM, ... */
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
write_register_bytes (REGISTER_BYTE(RET1_REGNUM), VALBUF, TYPE_LENGTH (TYPE))
extern void d10v_store_return_value PARAMS ((struct type *type, char *valbuf));
#define STORE_RETURN_VALUE(TYPE,VALBUF) d10v_store_return_value ((TYPE), (VALBUF))
/* Extract from an array REGBUF containing the (raw) register state
the address in which a function should return its structure value,
as a CORE_ADDR (or an expression that can be used as one). */
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
(extract_address ((REGBUF) + REGISTER_BYTE (ARG1_REGNUM), REGISTER_RAW_SIZE (ARG1_REGNUM)) | DMEM_START)
extern CORE_ADDR d10v_extract_struct_value_address PARAMS ((char *regbuf));
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) (d10v_extract_struct_value_address ((REGBUF)))
/* Should we use EXTRACT_STRUCT_VALUE_ADDRESS instead of
EXTRACT_RETURN_VALUE? GCC_P is true if compiled with gcc
@@ -190,65 +179,58 @@ extern use_struct_convention_fn d10v_use_struct_convention;
#define USE_STRUCT_CONVENTION(gcc_p, type) d10v_use_struct_convention (gcc_p, type)
/* Define other aspects of the stack frame.
we keep a copy of the worked out return pc lying around, since it
is a useful bit of info */
#define EXTRA_FRAME_INFO \
CORE_ADDR return_pc; \
int frameless; \
int size;
extern void d10v_init_extra_frame_info PARAMS ((int fromleaf, struct frame_info *fi));
#define INIT_EXTRA_FRAME_INFO(fromleaf, fi) \
d10v_init_extra_frame_info(fromleaf, fi)
extern void d10v_init_extra_frame_info PARAMS (( int fromleaf, struct frame_info *fi ));
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
(FRAMELESS) = frameless_look_for_prologue(FI)
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(frameless_look_for_prologue (FI))
extern CORE_ADDR d10v_frame_chain PARAMS ((struct frame_info *frame));
#define FRAME_CHAIN(FRAME) d10v_frame_chain(FRAME)
extern int d10v_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *));
#define FRAME_CHAIN_VALID(chain, thisframe) d10v_frame_chain_valid (chain, thisframe)
#define FRAME_SAVED_PC(FRAME) ((FRAME)->return_pc)
#define FRAME_ARGS_ADDRESS(fi) (fi)->frame
#define FRAME_LOCALS_ADDRESS(fi) (fi)->frame
extern CORE_ADDR d10v_frame_saved_pc PARAMS ((struct frame_info *fi));
#define FRAME_SAVED_PC(fi) (d10v_frame_saved_pc ((fi)))
extern CORE_ADDR d10v_frame_args_address PARAMS ((struct frame_info *fi));
#define FRAME_ARGS_ADDRESS(fi) (d10v_frame_args_address ((fi)))
extern CORE_ADDR d10v_frame_locals_address PARAMS ((struct frame_info *fi));
#define FRAME_LOCALS_ADDRESS(fi) (d10v_frame_locals_address ((fi)))
/* Immediately after a function call, return the saved pc. We can't */
/* use frame->return_pc beause that is determined by reading R13 off the */
/*stack and that may not be written yet. */
#define SAVED_PC_AFTER_CALL(frame) ((read_register(LR_REGNUM) << 2) | IMEM_START)
extern CORE_ADDR d10v_saved_pc_after_call PARAMS ((struct frame_info *frame));
#define SAVED_PC_AFTER_CALL(frame) (d10v_saved_pc_after_call ((frame)))
/* Set VAL to the number of args passed to frame described by FI.
Can set VAL to -1, meaning no way to tell. */
/* We can't tell how many args there are */
#define FRAME_NUM_ARGS(val,fi) (val = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */
#define FRAME_ARGS_SKIP 0
/* Put here the code to store, into a struct frame_saved_regs,
the addresses of the saved registers of frame described by FRAME_INFO.
/* Put here the code to store, into frame_info->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
ways in the stack frame. sp is even more special:
the address we return for it IS the sp for the next frame. */
#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
d10v_frame_find_saved_regs(frame_info, &(frame_saved_regs))
extern void d10v_frame_find_saved_regs PARAMS ((struct frame_info *, struct frame_saved_regs *));
#define NAMES_HAVE_UNDERSCORE
ways in the stack frame. sp is even more special: the address we
return for it IS the sp for the next frame. */
extern void d10v_frame_init_saved_regs PARAMS ((struct frame_info *));
#define FRAME_INIT_SAVED_REGS(frame_info) \
d10v_frame_init_saved_regs(frame_info)
/* DUMMY FRAMES. Need these to support inferior function calls. They
work like this on D10V: First we set a breakpoint at 0 or __start.
@@ -259,10 +241,10 @@ extern void d10v_frame_find_saved_regs PARAMS ((struct frame_info *, struct fram
breakpoint, clear the break point and pop the old register contents
off the stack. */
extern void d10v_pop_frame PARAMS ((struct frame_info *frame));
#define POP_FRAME generic_pop_current_frame (d10v_pop_frame)
extern void d10v_pop_frame PARAMS ((void));
#define POP_FRAME d10v_pop_frame ()
#define USE_GENERIC_DUMMY_FRAMES
#define USE_GENERIC_DUMMY_FRAMES 1
#define CALL_DUMMY {0}
#define CALL_DUMMY_START_OFFSET (0)
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
@@ -272,18 +254,18 @@ extern void d10v_pop_frame PARAMS ((struct frame_info *frame));
extern CORE_ADDR d10v_push_return_address PARAMS ((CORE_ADDR pc, CORE_ADDR sp));
#define PUSH_RETURN_ADDRESS(PC, SP) d10v_push_return_address (PC, SP)
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
/* #define PC_IN_CALL_DUMMY(pc, sp, frame_address) ( pc == IMEM_START + 4 ) */
#define PUSH_DUMMY_FRAME generic_push_dummy_frame ()
/* override the default get_saved_register function with one that
takes account of generic CALL_DUMMY frames */
#define GET_SAVED_REGISTER
#define get_saved_register generic_get_saved_register
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \
sp = d10v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))
(d10v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)))
extern CORE_ADDR d10v_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR));
@@ -293,19 +275,9 @@ extern CORE_ADDR d10v_push_arguments PARAMS ((int, struct value **, CORE_ADDR, i
#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
d10v_extract_return_value(TYPE, REGBUF, VALBUF)
extern void
d10v_extract_return_value PARAMS ((struct type *, char *, char *));
extern void d10v_extract_return_value PARAMS ((struct type *, char *, char *));
#define REGISTER_SIZE 2
#ifdef CC_HAS_LONG_LONG
# define LONGEST long long
#else
# define LONGEST long
#endif
#define ULONGEST unsigned LONGEST
void d10v_write_pc PARAMS ((CORE_ADDR val, int pid));
CORE_ADDR d10v_read_pc PARAMS ((int pid));
void d10v_write_sp PARAMS ((CORE_ADDR val));
@@ -331,7 +303,8 @@ CORE_ADDR d10v_read_fp PARAMS ((void));
need to be translated into a format that the d10v rom monitor
understands. */
int remote_d10v_translate_xfer_address PARAMS ((CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr));
extern void remote_d10v_translate_xfer_address PARAMS ((CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len));
#define REMOTE_TRANSLATE_XFER_ADDRESS(GDB_ADDR, GDB_LEN, REM_ADDR, REM_LEN) \
(REM_LEN) = remote_d10v_translate_xfer_address ((GDB_ADDR), (GDB_LEN), &(REM_ADDR))
remote_d10v_translate_xfer_address ((GDB_ADDR), (GDB_LEN), (REM_ADDR), (REM_LEN))
#endif

View File

@@ -46,9 +46,8 @@ struct value;
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
extern CORE_ADDR d30v_skip_prologue ();
#define SKIP_PROLOGUE(ip) \
{(ip) = d30v_skip_prologue(ip);}
extern CORE_ADDR d30v_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(ip) (d30v_skip_prologue (ip))
/* Stack grows downward. */
@@ -213,8 +212,8 @@ extern void d30v_init_extra_frame_info PARAMS (( int fromleaf, struct frame_info
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
(FRAMELESS) = frameless_look_for_prologue(FI)
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(frameless_look_for_prologue (FI))
#define FRAME_CHAIN(FRAME) d30v_frame_chain(FRAME)
extern int d30v_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *));
@@ -236,7 +235,7 @@ extern int d30v_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *));
Can set VAL to -1, meaning no way to tell. */
/* We can't tell how many args there are */
#define FRAME_NUM_ARGS(val,fi) (val = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */
@@ -254,8 +253,6 @@ extern int d30v_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *));
extern void d30v_frame_find_saved_regs PARAMS ((struct frame_info *, struct frame_saved_regs *));
#define NAMES_HAVE_UNDERSCORE
/* DUMMY FRAMES. Need these to support inferior function calls.
They work like this on D30V:
First we set a breakpoint at 0 or __start.
@@ -284,7 +281,7 @@ extern CORE_ADDR d30v_fix_call_dummy PARAMS ((char *, CORE_ADDR, CORE_ADDR,
int, struct value **,
struct type *, int));
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \
sp = d30v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))
(d30v_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)))
extern CORE_ADDR d30v_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR));

View File

@@ -1,4 +1,5 @@
/* Parameters for execution on a Fujitsu FR30 processor.
Copyright 1999, Free Software Foundation, Inc.
This file is part of GDB.
@@ -95,7 +96,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
extern void fr30_pop_frame PARAMS ((void));
#define POP_FRAME fr30_pop_frame()
#define USE_GENERIC_DUMMY_FRAMES
#define USE_GENERIC_DUMMY_FRAMES 1
#define CALL_DUMMY {0}
#define CALL_DUMMY_START_OFFSET (0)
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
@@ -129,12 +130,12 @@ extern void fr30_pop_frame PARAMS ((void));
#define STORE_STRUCT_RETURN(ADDR, SP) \
{ write_register (RETVAL_REG, (ADDR)); }
#define FRAME_ARGS_ADDRESS(fi) (fi->frame)
#define FRAME_ARGS_ADDRESS(fi) ((fi)->frame)
#define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(numargs, fi) (numargs = -1)
#define FRAME_NUM_ARGS(fi) (-1)
#ifdef __STDC__ /* Forward decls for prototypes */
struct frame_info;
@@ -158,13 +159,16 @@ extern CORE_ADDR fr30_frame_saved_pc PARAMS ((struct frame_info *));
#define SAVED_PC_AFTER_CALL(fi) read_register (RP_REGNUM)
extern CORE_ADDR fr30_skip_prologue PARAMS ((CORE_ADDR pc));
#define SKIP_PROLOGUE(pc) pc = fr30_skip_prologue (pc)
#define SKIP_PROLOGUE(pc) (fr30_skip_prologue (pc))
/* Write into appropriate registers a function return value
of type TYPE, given in virtual format. */
/* Write into appropriate registers a function return value of type
TYPE, given in virtual format. VALBUF is in the target byte order;
it's typically the VALUE_CONTENTS of some struct value, and those
are in the target's byte order. */
extern void fr30_store_return_value PARAMS ((struct type *type, char *valbuf));
#define STORE_RETURN_VALUE(TYPE,VALBUF) \
write_register_bytes (0, VALBUF, TYPE_LENGTH (TYPE))
(fr30_store_return_value ((TYPE), (VALBUF)))
/* Put here the code to store, into a struct frame_saved_regs,
the addresses of the saved registers of frame described by FRAME_INFO.
@@ -186,18 +190,10 @@ extern CORE_ADDR fr30_skip_prologue PARAMS ((CORE_ADDR pc));
/* Define other aspects of the stack frame. */
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
{ \
CORE_ADDR func_start, after_prologue; \
func_start = (get_pc_function_start ((FI)->pc) + \
FUNCTION_START_OFFSET); \
after_prologue = func_start; \
SKIP_PROLOGUE (after_prologue); \
(FRAMELESS) = (after_prologue == func_start); \
}
/* An expression that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. */
extern int fr30_frameless_function_invocation PARAMS ((struct frame_info *frame));
#define FRAMELESS_FUNCTION_INVOCATION(FI) (fr30_frameless_function_invocation (FI));
extern void fr30_init_extra_frame_info PARAMS ((struct frame_info *fi));
#define INIT_EXTRA_FRAME_INFO(fromleaf, fi) fr30_init_extra_frame_info (fi)
@@ -209,9 +205,9 @@ fr30_push_arguments PARAMS ((int nargs, struct value **args, CORE_ADDR sp,
int struct_return,
CORE_ADDR struct_addr));
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
(SP) = fr30_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
(fr30_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR))
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
/* Fujitsu's ABI requires all structs to be passed using a pointer.
That is obviously not very efficient, so I am leaving the definitions
@@ -230,3 +226,12 @@ fr30_push_arguments PARAMS ((int nargs, struct value **args, CORE_ADDR sp,
#endif
/* alway return struct by value by input pointer */
#define USE_STRUCT_CONVENTION(GCC_P, TYPE) 1
/* The stack should always be aligned on a four-word boundary. */
#define STACK_ALIGN(len) (((len) + 3) & ~3)
/* I think the comment about this in value_arg_coerce is wrong; this
should be true on any system where you can rely on the prototyping
information. When this is true, value_arg_coerce will promote
floats to doubles iff the function is not prototyped. */
#define COERCE_FLOAT_TO_DOUBLE 1

View File

@@ -336,7 +336,7 @@
/* OBSOLETE */
/* OBSOLETE /* We can check the stab info to see how */
/* OBSOLETE many arg we have. No info in stack will tell us *x/ */
/* OBSOLETE #define FRAME_NUM_ARGS(val,fi) (val = findarg(fi)) */
/* OBSOLETE #define FRAME_NUM_ARGS(fi) (findarg(fi)) */
/* OBSOLETE */
/* OBSOLETE /* Return number of bytes at start of arglist that are not really args. *x/ */
/* OBSOLETE #define FRAME_ARGS_SKIP 8 */

View File

@@ -312,7 +312,7 @@
/* OBSOLETE */
/* OBSOLETE /* We can check the stab info to see how */
/* OBSOLETE many arg we have. No info in stack will tell us *x/ */
/* OBSOLETE #define FRAME_NUM_ARGS(val,fi) (val = findarg(fi)) */
/* OBSOLETE #define FRAME_NUM_ARGS(fi) (findarg(fi)) */
/* OBSOLETE */
/* OBSOLETE /* Return number of bytes at start of arglist that are not really args. *x/ */
/* OBSOLETE #define FRAME_ARGS_SKIP 8 */

View File

@@ -69,7 +69,7 @@ extern void h8300_init_extra_frame_info ();
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(ip) {(ip) = h8300_skip_prologue(ip);}
#define SKIP_PROLOGUE(ip) (h8300_skip_prologue(ip))
extern CORE_ADDR h8300_skip_prologue ();
/* Immediately after a function call, return the saved pc.
@@ -213,8 +213,8 @@ CORE_ADDR h8300_frame_chain PARAMS ((struct frame_info *));
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
(FRAMELESS) = frameless_look_for_prologue(FI)
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(frameless_look_for_prologue (FI))
/* Any function with a frame looks like this
SECOND ARG
@@ -239,7 +239,7 @@ CORE_ADDR h8300_frame_chain PARAMS ((struct frame_info *));
/* We can't tell how many args there are
now that the C compiler delays popping them. */
#define FRAME_NUM_ARGS(val,fi) (val = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */
@@ -271,7 +271,7 @@ typedef unsigned short INSN_WORD;
* CALL_DUMMY stuff:
*/
#define USE_GENERIC_DUMMY_FRAMES
#define USE_GENERIC_DUMMY_FRAMES 1
#define CALL_DUMMY {0}
#define CALL_DUMMY_LENGTH (0)
#define CALL_DUMMY_ADDRESS() entry_point_address ()
@@ -286,10 +286,10 @@ extern CORE_ADDR h8300_push_arguments PARAMS ((int nargs,
CORE_ADDR struct_addr));
extern CORE_ADDR h8300_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR));
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
#define FIX_CALL_DUMMY(DUMMY, START_SP, FUNADDR, NARGS, ARGS, TYPE, GCCP)
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
(SP) = h8300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
(h8300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR))
/* Push an empty stack frame, to record the current PC, etc. */
#define PUSH_DUMMY_FRAME generic_push_dummy_frame ()
/* Discard from the stack the innermost frame, restoring all registers. */
@@ -298,6 +298,8 @@ extern CORE_ADDR h8300_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR));
/* override the standard get_saved_register function with
one that takes account of generic CALL_DUMMY frames */
#define GET_SAVED_REGISTER
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)

View File

@@ -43,7 +43,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(ip) { (ip) = h8500_skip_prologue(ip); }
#define SKIP_PROLOGUE(ip) (h8500_skip_prologue (ip))
extern CORE_ADDR h8500_skip_prologue PARAMS ((CORE_ADDR));
/* Immediately after a function call, return the saved pc.
@@ -186,8 +186,8 @@ extern struct type *h8500_register_virtual_type PARAMS ((int regno));
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
(FRAMELESS) = frameless_look_for_prologue(FI)
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(frameless_look_for_prologue (FI))
/* Any function with a frame looks like this
SECOND ARG
@@ -221,7 +221,7 @@ extern CORE_ADDR frame_saved_pc PARAMS ((struct frame_info *frame));
/* We can't tell how many args there are
now that the C compiler delays popping them. */
#define FRAME_NUM_ARGS(val,fi) (val = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */
@@ -247,8 +247,6 @@ extern void h8500_pop_frame PARAMS ((void));
#define SHORT_INT_MAX 32767
#define SHORT_INT_MIN -32768
#define NAMES_HAVE_UNDERSCORE
typedef unsigned short INSN_WORD;
extern CORE_ADDR h8500_addr_bits_remove PARAMS ((CORE_ADDR));

View File

@@ -1,8 +1,19 @@
MH_CFLAGS=-D__GO32__ -D__MSDOS__
XDEPFILES= go32-xdep.o
# Host: Intel x86 running DJGPP
# we don't need mmalloc on DJGPP
MH_CFLAGS= -DNO_MMALLOC
MMALLOC=
MMALLOC_CFLAGS=
XM_FILE= xm-go32.h
HOST_IPC=-DDOS_IPC
XDEPFILES=
NAT_FILE= nm-go32.h
NATDEPFILES= go32-nat.o
TERMCAP=
HOST_IPC=
SER_HARDWIRE= ser-go32.o
CC=i386-go32-gcc -O2 -fno-omit-frame-pointer
CC= gcc
XM_CLIBS= -ldbg

3
gdb/config/i386/go32.mt Normal file
View File

@@ -0,0 +1,3 @@
# Target: Intel 386 running DJGPP
TDEPFILES= i386-tdep.o i387-tdep.o
TM_FILE= tm-go32.h

57
gdb/config/i386/nm-go32.h Normal file
View File

@@ -0,0 +1,57 @@
/* Native definitions for Intel x86 running DJGPP.
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define NO_PTRACE_H
#include "i386/nm-i386v.h"
#define TARGET_HAS_HARDWARE_WATCHPOINTS
#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) 1
/* After a watchpoint trap, the PC points to the instruction after the
one that caused the trap. Therefore we don't need to step over it.
But we do need to reset the status register to avoid another trap. */
#define HAVE_CONTINUABLE_WATCHPOINT
#define STOPPED_BY_WATCHPOINT(W) \
go32_stopped_by_watchpoint (inferior_pid)
/* Use these macros for watchpoint insertion/removal. */
#define target_insert_watchpoint(addr, len, type) \
go32_insert_watchpoint (inferior_pid, addr, len, 2)
#define target_remove_watchpoint(addr, len, type) \
go32_remove_watchpoint (inferior_pid, addr, len)
#define target_insert_hw_breakpoint(addr, shadow) \
go32_insert_hw_breakpoint(addr, shadow)
#define target_remove_hw_breakpoint(addr, shadow) \
go32_remove_hw_breakpoint(addr, shadow)
#define DECR_PC_AFTER_HW_BREAK 0
#undef FLOAT_INFO
#define FLOAT_INFO { i386_go32_float_info (); }
extern void i386_go32_float_info (void);

View File

@@ -19,7 +19,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
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Basically, its a lot like the older versions ... */
#include "i386/nm-i386sco.h"

View File

@@ -117,8 +117,6 @@ double_to_i387 PARAMS ((char *, char *));
((N < FP0_REGNUM) ? builtin_type_int : \
builtin_type_double)
#define NAMES_HAVE_UNDERSCORE
#define IN_SOLIB_CALL_TRAMPOLINE(pc, name) skip_trampoline_code (pc, name)
#define SKIP_TRAMPOLINE_CODE(pc) skip_trampoline_code (pc, 0)
extern CORE_ADDR skip_trampoline_code PARAMS ((CORE_ADDR pc, char *name));

View File

@@ -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
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "i386/tm-i386bsd.h"

210
gdb/config/i386/tm-go32.h Normal file
View File

@@ -0,0 +1,210 @@
/* Target-dependent definitions for Intel x86 running DJGPP.
Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "i386/tm-i386v.h"
/* Number of machine registers. */
#undef NUM_FREGS
#define NUM_FREGS 15
#undef NUM_REGS
#define NUM_REGS (16+NUM_FREGS)
/* Initializer for an array of names of registers. There should be
NUM_REGS strings in this initializer. */
/* The order of the first 8 registers must match the compiler's
numbering scheme (which is the same as the 386 scheme). */
#undef REGISTER_NAMES
#define REGISTER_NAMES { "eax", "ecx", "edx", "ebx", \
"esp", "ebp", "esi", "edi", \
"eip", "eflags","cs", "ss", \
"ds", "es", "fs", "gs", \
"st0", "st1", "st2", "st3", \
"st4", "st5", "st6", "st7", \
"fctrl","fstat", "ftag", "fcs", \
"fopsel","fip", "fopoff" }
#undef FP_REGNUM
#define FP_REGNUM 5 /* (ebp) Contains addr of stack frame */
#undef SP_REGNUM
#define SP_REGNUM 4 /* (usp) Contains address of top of stack */
#undef PS_REGNUM
#define PS_REGNUM 9 /* (ps) Contains processor status */
#undef PC_REGNUM
#define PC_REGNUM 8 /* (eip) Contains program counter */
#undef FP0_REGNUM
#define FP0_REGNUM 16 /* Floating point register 0 */
#undef FPC_REGNUM
#define FPC_REGNUM 24 /* 80387 control register */
#undef FPCWD_REGNUM
#define FPCWD_REGNUM FPC_REGNUM
#undef FPSWD_REGNUM
#define FPSWD_REGNUM 25 /* 80387 status register */
#undef FPTWD_REGNUM
#define FPTWD_REGNUM 26 /* 80387 tag register */
#undef FPIPO_REGNUM
#define FPIPO_REGNUM 29 /* 80387 instruction pointer offset reg */
#undef FPIPS_REGNUM
#define FPIPS_REGNUM 27 /* 80387 instruction pointer selector reg */
#undef FPOOS_REGNUM
#define FPOOS_REGNUM 30 /* 80387 operand pointer offset reg */
#undef FPOPS_REGNUM
#define FPOPS_REGNUM 28 /* 80387 operand pointer selector reg */
/* Total amount of space needed to store our copies of the machine's
register state, the array `registers'. */
#undef REGISTER_BYTES
#define REGISTER_BYTES (10*4 + 6*2 + 8*10 + 5*2 + 2*4)
/* Index within `registers' of the first byte of the space for
register N. */
#undef REGISTER_BYTE
#define REGBYTE_0 0
#define REGBYTE_10 (REGBYTE_0+10*4)
#define REGBYTE_16 (REGBYTE_10+6*2)
#define REGBYTE_24 (REGBYTE_16+8*10)
#define REGBYTE_29 (REGBYTE_24+5*2)
#define REGISTER_BYTE(N) (((N) < 10) ? (N) * 4 : \
(N) < 16 ? REGBYTE_10 +((N) - 10) * 2 : \
(N) < 24 ? REGBYTE_16 +((N) - 16) * 10 : \
(N) < 29 ? REGBYTE_24 +((N) - 24) * 2 : \
REGBYTE_29 + ((N) - 29) * 4)
/* Number of bytes of storage in the actual machine representation
for register N. */
#undef REGISTER_RAW_SIZE
#define REGISTER_RAW_SIZE(N) ((N) < 10 ? 4 : (N) < 16 ? 2 : (N) < 24 ? 10 : \
(N) < 29 ? 2 : 4)
/* Number of bytes of storage in the program's representation
for register N. */
#undef REGISTER_VIRTUAL_SIZE
#define REGISTER_VIRTUAL_SIZE(N) REGISTER_RAW_SIZE(N)
/* Largest value REGISTER_RAW_SIZE can have. */
#undef MAX_REGISTER_RAW_SIZE
#define MAX_REGISTER_RAW_SIZE 10
/* Largest value REGISTER_VIRTUAL_SIZE can have. */
#undef MAX_REGISTER_VIRTUAL_SIZE
#define MAX_REGISTER_VIRTUAL_SIZE 10
/* Nonzero if register N requires conversion
from raw format to virtual format. */
#undef REGISTER_CONVERTIBLE
#define REGISTER_CONVERTIBLE(N) ((N) < FP0_REGNUM ? 0 :\
(N) < FPC_REGNUM ? 1 : 0)
/* The host and target are i386 machines and the compiler supports
long doubles. Long doubles on the host therefore have the same
layout as a 387 FPU stack register. */
#if defined(HAVE_LONG_DOUBLE) && defined(HOST_I386)
#undef LD_I387
#define LD_I387
#endif
/* Allow floating point numbers to be specified by a raw long double
10 hex bytes number, e.g. 1.0 can be input as
0x3fff8000000000000000 */
#ifdef LD_I387
#define HEX_LONG_DOUBLE_INPUT(base,p,len,target) \
((base) == 16 && (len) == 20 \
&& i387_hex_long_double_input ((p), (target)))
#endif
extern int i387_hex_long_double_input (char *p, long double *putithere);
#undef REGISTER_CONVERT_TO_VIRTUAL
#ifdef LD_I387
#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,TYPE,FROM,TO) \
{ \
if (TYPE == REGISTER_VIRTUAL_TYPE (REGNUM)) \
{ \
memcpy (TO, FROM, TYPE_LENGTH (TYPE)); \
} \
else \
{ \
long double val = *((long double *)FROM); \
store_floating ((TO), TYPE_LENGTH (TYPE), val); \
} \
}
#else
/* Convert data from raw format for register REGNUM in buffer FROM to
virtual format with type TYPE in buffer TO. */
#define REGISTER_CONVERT_TO_VIRTUAL(REGNUM,TYPE,FROM,TO) \
{ \
double val; \
i387_to_double ((FROM), (char *)&val); \
store_floating ((TO), TYPE_LENGTH (TYPE), val); \
}
#endif
extern void i387_to_double PARAMS ((char *, char *));
#undef REGISTER_CONVERT_TO_RAW
#ifdef LD_I387
#define REGISTER_CONVERT_TO_RAW(TYPE,REGNUM,FROM,TO) \
{ \
if (TYPE == REGISTER_VIRTUAL_TYPE (REGNUM)) \
{ \
memcpy (TO, FROM, TYPE_LENGTH (TYPE)); \
} \
else \
{ \
long double val = extract_floating ((FROM), TYPE_LENGTH (TYPE)); \
*((long double *)TO) = val; \
} \
}
#else
#define REGISTER_CONVERT_TO_RAW(TYPE,REGNUM,FROM,TO) \
{ \
double val = extract_floating ((FROM), TYPE_LENGTH (TYPE)); \
double_to_i387((char *)&val, (TO)); \
}
#endif
extern void double_to_i387 PARAMS ((char *, char *));
/* Return the GDB type object for the "standard" data type of data in
register N. */
#undef REGISTER_VIRTUAL_TYPE
#ifdef LD_I387
#define REGISTER_VIRTUAL_TYPE(N) \
((N < FP0_REGNUM) ? builtin_type_int : \
(N < FPC_REGNUM) ? builtin_type_long_double : builtin_type_int)
#else
#define REGISTER_VIRTUAL_TYPE(N) \
((N < FP0_REGNUM) ? builtin_type_int : \
(N < FPC_REGNUM) ? builtin_type_double : builtin_type_int)
#endif
#undef TARGET_LONG_DOUBLE_BIT
#define TARGET_LONG_DOUBLE_BIT 96

View File

@@ -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
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef TM_I386_H
#define TM_I386_H 1
@@ -47,7 +47,7 @@ struct type;
/* Advance PC across any function entry prologue instructions to reach some
"real" code. */
#define SKIP_PROLOGUE(frompc) {(frompc) = i386_skip_prologue((frompc));}
#define SKIP_PROLOGUE(frompc) (i386_skip_prologue (frompc))
extern int i386_skip_prologue PARAMS ((int));
@@ -207,13 +207,8 @@ extern void i386_extract_return_value PARAMS ((struct type *, char [], char *));
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
do { \
if ((FI)->signal_handler_caller) \
(FRAMELESS) = 0; \
else \
(FRAMELESS) = frameless_look_for_prologue(FI); \
} while (0)
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(((FI)->signal_handler_caller) ? 0 : frameless_look_for_prologue(FI))
/* Saved Pc. Get it from sigcontext if within sigtramp. */
@@ -232,7 +227,7 @@ extern CORE_ADDR sigtramp_saved_pc PARAMS ((struct frame_info *));
/* Return number of args passed to a frame. Can return -1, meaning no way
to tell, which is typical now that the C compiler delays popping them. */
#define FRAME_NUM_ARGS(numargs, fi) (numargs) = i386_frame_num_args(fi)
#define FRAME_NUM_ARGS(fi) (i386_frame_num_args(fi))
extern int i386_frame_num_args PARAMS ((struct frame_info *));

View File

@@ -1,5 +1,5 @@
/* Macro definitions for i386, GNU Hurd
Copyright (C) 1992 Free Software Foundation, Inc.
Copyright (C) 1992, 1999 Free Software Foundation, Inc.
This file is part of GDB.
@@ -17,6 +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. */
#ifndef TM_I386GNU_H
#define TM_I386GNU_H 1
/* Include common definitions for gnu systems */
#include "nm-gnu.h"
@@ -33,16 +36,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* we can do it */
#define ATTACH_DETACH 1
/* Sigh. There should be a file for i386 but no sysv stuff in it */
#include "i386/tm-i386v.h"
#include "i386/tm-i386.h"
/* I want to test this float info code. See comment in tm-i386v.h */
#undef FLOAT_INFO
#define FLOAT_INFO { i386_mach3_float_info (); }
/* Address of end of stack space.
* for MACH, see <machine/vmparam.h>
* @@@ I don't know what is in the 5 ints...
*/
#undef STACK_END_ADDR
#define STACK_END_ADDR (0xc0000000-sizeof(int [5]))
/* Offset to saved PC in sigcontext. */
#define SIGCONTEXT_PC_OFFSET 68
/* We need this file for the SOLIB_TRAMPOLINE stuff. */
#include "tm-sysv4.h"
#endif /* TM_I386GNU_H */

View File

@@ -40,11 +40,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* we can do it */
#define ATTACH_DETACH 1
/* Define this if the C compiler puts an underscore at the front
of external names before giving them to the linker. */
#define NAMES_HAVE_UNDERSCORE
/* Sigh. There should be a file for i386 but no sysv stuff in it */
#include "i386/tm-i386.h"

View File

@@ -140,8 +140,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
does not, FRAMELESS is set to 1, else 0. */
#undef FRAMELESS_FUNCTION_INVOCATION
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
(FRAMELESS) = frameless_look_for_prologue(FI)
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(frameless_look_for_prologue (FI))
#undef FRAME_SAVED_PC
#define FRAME_SAVED_PC(FRAME) (read_memory_integer ((FRAME)->frame + 4, 4))
@@ -150,7 +150,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
Can return -1, meaning no way to tell. */
#undef FRAME_NUM_ARGS
#define FRAME_NUM_ARGS(numargs, fi) (numargs) = -1
#define FRAME_NUM_ARGS(fi) (-1)
#ifdef __STDC__ /* Forward decl's for prototypes */
struct frame_info;

View File

@@ -186,8 +186,8 @@ double_to_i387 PARAMS ((char *, char *));
does not, FRAMELESS is set to 1, else 0. */
#undef FRAMELESS_FUNCTION_INVOCATION
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
{ (FRAMELESS) = frameless_look_for_prologue (FI); }
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(frameless_look_for_prologue (FI))
#undef FRAME_SAVED_PC
#define FRAME_SAVED_PC(FRAME) (read_memory_integer ((FRAME)->frame + 4, 4))

View File

@@ -1,17 +0,0 @@
# gdbwin.o and ser-win32s.c have to be named because they have
# _initialize functions that need to be found by init.c
# gui.ores has to be named, or else msvc won't link it in.
XDEPFILES = \
mswin/gdbwin.o \
mswin/ser-win32s.o \
mswin/gui.ores \
mswin/libwingdb.a
$(XDEPFILES):
rootme=`pwd` ; export rootme ; \
( cd mswin ; \
$(MAKE) $(FLAGS_TO_PASS) all )
XM_FILE=xm-windows.h
MMALLOC=
SER_HARDWIRE =

View File

@@ -1,5 +1,5 @@
/* Definitions for hosting on GO32, for GDB.
Copyright 1991, 1992 Free Software Foundation, Inc.
/* Host-dependent definitions for Intel x86 running DJGPP.
Copyright 1993-1996 Free Software Foundation, Inc.
This file is part of GDB.
@@ -18,14 +18,20 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define HOST_BYTE_ORDER LITTLE_ENDIAN
#include "fopen-bin.h"
/* Define this lseek(n) != nth byte of file */
#define LSEEK_NOT_LINEAR
#define CANT_FORK
#undef QUIT
#define QUIT { pollquit(); }
#define GDBINIT_FILENAME "gdb.ini"
#define SLASH_P(X) ((X)=='\\' || (X) == '/')
#define ROOTED_P(X) ((SLASH_P((X)[0]))|| ((X)[1] ==':'))
#define SLASH_CHAR '/'
#define SLASH_STRING "/"
#define CRLF_SOURCE_FILES
#define DIRNAME_SEPARATOR ';'
#define HOST_I386

View File

@@ -49,8 +49,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance ip across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(ip) { ip = skip_prologue (ip); }
extern CORE_ADDR skip_prologue ();
#define SKIP_PROLOGUE(ip) (i960_skip_prologue (ip))
extern CORE_ADDR i960_skip_prologue ();
/* Immediately after a function call, return the saved ip.
Can't always go through the frames for this because on some machines
@@ -286,8 +286,8 @@ extern use_struct_convention_fn i960_use_struct_convention;
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
{ (FRAMELESS) = (leafproc_return ((FI)->pc) != 0); }
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(leafproc_return ((FI)->pc) != 0)
/* Note that in the i960 architecture the return pointer is saved in the
*caller's* stack frame.
@@ -317,7 +317,7 @@ extern CORE_ADDR frame_args_address (); /* i960-tdep.c */
/* Set NUMARGS to the number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(numargs, fi) (numargs = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */

View File

@@ -1,5 +1,5 @@
/* Parameters for VxWorks Intel 960's, for GDB, the GNU debugger.
Copyright (C) 1986-1991 Free Software Foundation, Inc.
Copyright (C) 1986-1991, 1999 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
@@ -19,16 +19,13 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "i960/tm-i960.h"
#include "tm-vxworks.h"
/* Under VxWorks the IP isn't filled in. Skip it, go with RIP, which has
the real value. */
#undef PC_REGNUM
#define PC_REGNUM RIP_REGNUM
#define GDBINIT_FILENAME ".vxgdbinit"
#define DEFAULT_PROMPT "(vxgdb) "
/* We have more complex, useful breakpoints on the target.
Amount ip must be decremented by after a breakpoint. */

View File

@@ -155,7 +155,7 @@ extern CORE_ADDR m32r_frame_saved_pc PARAMS((struct frame_info *));
extern CORE_ADDR m32r_skip_prologue PARAMS ((CORE_ADDR pc));
/* mvs_check SKIP_PROLOGUE */
#define SKIP_PROLOGUE(pc) pc = m32r_skip_prologue (pc)
#define SKIP_PROLOGUE(pc) (m32r_skip_prologue (pc))
/* mvs_no_check FRAME_ARGS_SKIP */
#define FRAME_ARGS_SKIP 0
@@ -165,7 +165,7 @@ extern CORE_ADDR m32r_skip_prologue PARAMS ((CORE_ADDR pc));
/* mvs_no_check FRAME_LOCALS_ADDRESS */
#define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
/* mvs_no_check FRAME_NUM_ARGS */
#define FRAME_NUM_ARGS(val, fi) ((val) = -1)
#define FRAME_NUM_ARGS(fi) (-1)
#define COERCE_FLOAT_TO_DOUBLE 1
@@ -193,7 +193,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)
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP, FP)
/* target-specific dummy_frame stuff */
@@ -216,15 +216,17 @@ extern CORE_ADDR m32r_push_arguments PARAMS ((int nargs,
/* mvs_no_check PUSH_ARGUMENTS */
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
(SP) = m32r_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
(m32r_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR))
#define PUSH_RETURN_ADDRESS(PC, SP) m32r_push_return_address (PC, SP)
/* override the standard get_saved_register function with
one that takes account of generic CALL_DUMMY frames */
#define GET_SAVED_REGISTER
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
#define USE_GENERIC_DUMMY_FRAMES
#define USE_GENERIC_DUMMY_FRAMES 1
#define CALL_DUMMY {0}
#define CALL_DUMMY_LENGTH (0)
#define CALL_DUMMY_START_OFFSET (0)

View File

@@ -1,5 +1,5 @@
# Host: Altos 3068 (m68k, System V release 2)
XM_FILE= xm-altos.h
XDEPFILES= infptrace.o inftarg.o fork-child.o altos-xdep.o
# OBSOLETE # Host: Altos 3068 (m68k, System V release 2)
# OBSOLETE
# OBSOLETE XM_FILE= xm-altos.h
# OBSOLETE XDEPFILES= infptrace.o inftarg.o fork-child.o altos-xdep.o

View File

@@ -1,3 +1,3 @@
# Target: Altos 3068 (m68k, System V release 2)
TDEPFILES= m68k-tdep.o
TM_FILE= tm-altos.h
# OBSOLETE # Target: Altos 3068 (m68k, System V release 2)
# OBSOLETE TDEPFILES= m68k-tdep.o
# OBSOLETE TM_FILE= tm-altos.h

View File

@@ -1,57 +1,44 @@
/* Target definitions for GDB on an Altos 3068 (m68k running SVR2)
Copyright 1987, 1989, 1991, 1993 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* The child target can't deal with floating registers. */
#define CANNOT_STORE_REGISTER(regno) ((regno) >= FP0_REGNUM)
/* Define BPT_VECTOR if it is different than the default.
This is the vector number used by traps to indicate a breakpoint. */
#define BPT_VECTOR 0xe
/* Address of end of stack space. */
/*#define STACK_END_ADDR (0xffffff)*/
#define STACK_END_ADDR (0x1000000)
/* Amount PC must be decremented by after a breakpoint.
On the Altos, the kernel resets the pc to the trap instr */
#define DECR_PC_AFTER_BREAK 0
/* The only reason this is here is the tm-altos.h reference below. It
was moved back here from tm-m68k.h. FIXME? */
#define SKIP_PROLOGUE(pc) \
{ register int op = read_memory_integer (pc, 2); \
if (op == 0047126) \
pc += 4; /* Skip link #word */ \
else if (op == 0044016) \
pc += 6; /* Skip link #long */ \
/* Not sure why branches are here. */ \
/* From tm-isi.h, tm-altos.h */ \
else if (op == 0060000) \
pc += 4; /* Skip bra #word */ \
else if (op == 00600377) \
pc += 6; /* skip bra #long */ \
else if ((op & 0177400) == 0060000) \
pc += 2; /* skip bra #char */ \
}
#include "m68k/tm-m68k.h"
/* OBSOLETE /* Target definitions for GDB on an Altos 3068 (m68k running SVR2) */
/* OBSOLETE Copyright 1987, 1989, 1991, 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, Boston, MA 02111-1307, USA. *x/ */
/* OBSOLETE */
/* OBSOLETE /* The child target can't deal with floating registers. *x/ */
/* OBSOLETE #define CANNOT_STORE_REGISTER(regno) ((regno) >= FP0_REGNUM) */
/* OBSOLETE */
/* OBSOLETE /* Define BPT_VECTOR if it is different than the default. */
/* OBSOLETE This is the vector number used by traps to indicate a breakpoint. *x/ */
/* OBSOLETE */
/* OBSOLETE #define BPT_VECTOR 0xe */
/* OBSOLETE */
/* OBSOLETE /* Address of end of stack space. *x/ */
/* OBSOLETE */
/* OBSOLETE /*#define STACK_END_ADDR (0xffffff)*x/ */
/* OBSOLETE #define STACK_END_ADDR (0x1000000) */
/* OBSOLETE */
/* OBSOLETE /* Amount PC must be decremented by after a breakpoint. */
/* OBSOLETE On the Altos, the kernel resets the pc to the trap instr *x/ */
/* OBSOLETE */
/* OBSOLETE #define DECR_PC_AFTER_BREAK 0 */
/* OBSOLETE */
/* OBSOLETE /* The only reason this is here is the tm-altos.h reference below. It */
/* OBSOLETE was moved back here from tm-m68k.h. FIXME? *x/ */
/* OBSOLETE */
/* OBSOLETE extern CORE_ADDR altos_skip_prologue PARAMS ((CORE_ADDR)); */
/* OBSOLETE #define SKIP_PROLOGUE(pc) (altos_skip_prologue (pc)) */
/* OBSOLETE */
/* OBSOLETE #include "m68k/tm-m68k.h" */

View File

@@ -75,18 +75,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(val, fi) \
{ register CORE_ADDR pc = FRAME_SAVED_PC (fi); \
register int insn = 0177777 & read_memory_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); \
else if ((insn & 0170777) == 0050217 /* addql #N, sp */ \
|| (insn & 0170777) == 0050117) /* addqw */ \
{ val = (insn >> 9) & 7; if (val == 0) val = 8; } \
else if (insn == 0157774) /* addal #WW, sp */ \
val = read_memory_integer (pc + 2, 4); \
val >>= 2; }
extern int delta68_frame_num_args PARAMS ((struct frame_info *fi));
#define FRAME_NUM_ARGS(fi) (delta68_frame_num_args ((fi)))
/* On M68040 versions of sysV68 R3V7.1, ptrace(PT_WRITE_I) does not clear
the processor's instruction cache as it should. */

View File

@@ -41,18 +41,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(val, fi) \
{ register CORE_ADDR pc = FRAME_SAVED_PC (fi); \
register int insn = 0177777 & read_memory_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); \
else if ((insn & 0170777) == 0050217 /* addql #N, sp */ \
|| (insn & 0170777) == 0050117) /* addqw */ \
{ val = (insn >> 9) & 7; if (val == 0) val = 8; } \
else if (insn == 0157774) /* addal #WW, sp */ \
val = read_memory_integer (pc + 2, 4); \
val >>= 2; }
extern int isi_frame_num_args PARAMS ((struct frame_info *fi));
#define FRAME_NUM_ARGS(fi) (isi_frame_num_args ((fi)))
/* Put here the code to store, into a struct frame_saved_regs,
the addresses of the saved registers of frame described by FRAME_INFO.
@@ -131,20 +121,7 @@ retry: \
/* The only reason this is here is the tm-isi.h reference below. It
was moved back here from tm-m68k.h. FIXME? */
#define SKIP_PROLOGUE(pc) \
{ register int op = read_memory_integer (pc, 2); \
if (op == 0047126) \
pc += 4; /* Skip link #word */ \
else if (op == 0044016) \
pc += 6; /* Skip link #long */ \
/* Not sure why branches are here. */ \
/* From tm-isi.h, tm-altos.h */ \
else if (op == 0060000) \
pc += 4; /* Skip bra #word */ \
else if (op == 00600377) \
pc += 6; /* skip bra #long */ \
else if ((op & 0177400) == 0060000) \
pc += 2; /* skip bra #char */ \
}
extern CORE_ADDR isi_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (isi_skip_prologue (pc))
#include "m68k/tm-m68k.h"

View File

@@ -33,9 +33,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
to reach some "real" code. */
#if !defined(SKIP_PROLOGUE)
#define SKIP_PROLOGUE(ip) {(ip) = m68k_skip_prologue(ip);}
extern CORE_ADDR m68k_skip_prologue PARAMS ((CORE_ADDR ip));
#define SKIP_PROLOGUE(ip) (m68k_skip_prologue (ip))
#endif
extern CORE_ADDR m68k_skip_prologue PARAMS ((CORE_ADDR ip));
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines
@@ -274,13 +274,8 @@ do \
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
do { \
if ((FI)->signal_handler_caller) \
(FRAMELESS) = 0; \
else \
(FRAMELESS) = frameless_look_for_prologue(FI); \
} while (0)
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(((FI)->signal_handler_caller) ? 0 : frameless_look_for_prologue(FI))
/* This was determined by experimentation on hp300 BSD 4.3. Perhaps
it corresponds to some offset in /usr/include/sys/user.h or
@@ -311,7 +306,7 @@ do \
/* We can't tell how many args there are
now that the C compiler delays popping them. */
#if !defined (FRAME_NUM_ARGS)
#define FRAME_NUM_ARGS(val,fi) (val = -1)
#define FRAME_NUM_ARGS(fi) (-1)
#endif
/* Return number of bytes at start of arglist that are not really args. */

View File

@@ -59,17 +59,7 @@ Here is an m-news.h file for gdb. It supports the 68881 registers.
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(val, fi) \
{ register CORE_ADDR pc = FRAME_SAVED_PC (fi); \
register int insn = 0177777 & read_memory_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); \
else if ((insn & 0170777) == 0050217 /* addql #N, sp */ \
|| (insn & 0170777) == 0050117) /* addqw */ \
{ val = (insn >> 9) & 7; if (val == 0) val = 8; } \
else if (insn == 0157774) /* addal #WW, sp */ \
val = read_memory_integer (pc + 2, 4); \
val >>= 2; }
extern int news_frame_num_args PARAMS ((struct frame_info *fi));
#define FRAME_NUM_ARGS(fi) (news_frame_num_args ((fi)))
#include "m68k/tm-m68k.h"

View File

@@ -1,5 +1,5 @@
/* Target machine description for VxWorks m68k's, for GDB, the GNU debugger.
Copyright 1986, 1987, 1989, 1991, 1992, 1993 Free Software Foundation, Inc.
Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1999 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
@@ -18,10 +18,6 @@ You 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. */
#define GDBINIT_FILENAME ".vxgdbinit"
#define DEFAULT_PROMPT "(vxgdb) "
/* GCC is probably the only compiler used on this configuration. So
get this right even if the code which detects gcc2_compiled. is
still broken. */
@@ -32,6 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define DECR_PC_AFTER_BREAK 0
#include "m68k/tm-m68k.h"
#include "tm-vxworks.h"
/* Takes the current frame-struct pointer and returns the chain-pointer
to get to the calling frame.

View File

@@ -1,202 +1,202 @@
/* Definitions to make GDB run on an Altos 3068 (m68k running SVR2)
Copyright (C) 1987,1989 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define HOST_BYTE_ORDER BIG_ENDIAN
/* The altos support would make a good base for a port to other USGR2 systems
(like the 3b1 and the Convergent miniframe). */
/* This is only needed in one file, but it's cleaner to put it here than
putting in more #ifdef's. */
#include <sys/page.h>
#include <sys/net.h>
#define USG
#define HAVE_TERMIO
#define CBREAK XTABS /* It takes all kinds... */
#ifndef R_OK
#define R_OK 4
#define W_OK 2
#define X_OK 1
#define F_OK 0
#endif
/* Get sys/wait.h ie. from a Sun and edit it a little (mc68000 to m68k) */
/* Why bother? */
#if 0
#define HAVE_WAIT_STRUCT
#endif
/* This is the amount to subtract from u.u_ar0
to get the offset in the core file of the register values. */
#define KERNEL_U_ADDR 0x1fbf000
#define REGISTER_U_ADDR(addr, blockend, regno) \
{ if (regno <= SP_REGNUM) \
addr = blockend + regno * 4; \
else if (regno == PS_REGNUM) \
addr = blockend + regno * 4 + 4; \
else if (regno == PC_REGNUM) \
addr = blockend + regno * 4 + 2; \
}
#define REGISTER_ADDR(u_ar0, regno) \
(((regno) < PS_REGNUM) \
? (&((struct exception_stack *) (u_ar0))->e_regs[(regno + R0)]) \
: (((regno) == PS_REGNUM) \
? ((int *) (&((struct exception_stack *) (u_ar0))->e_PS)) \
: (&((struct exception_stack *) (u_ar0))->e_PC)))
#define FP_REGISTER_ADDR(u, regno) \
(((char *) \
(((regno) < FPC_REGNUM) \
? (&u.u_pcb.pcb_mc68881[FMC68881_R0 + (((regno) - FP0_REGNUM) * 3)]) \
: (&u.u_pcb.pcb_mc68881[FMC68881_C + ((regno) - FPC_REGNUM)]))) \
- ((char *) (& u)))
#ifndef __GNUC__
#undef USE_GAS
#define ALTOS_AS
#else
#define USE_GAS
#endif
/* Motorola assembly format */
#if !defined(USE_GAS) && !defined(ALTOS)
#define MOTOROLA
#endif
/* Interface definitions for kernel debugger KDB. */
/* Map machine fault codes into signal numbers.
First subtract 0, divide by 4, then index in a table.
Faults for which the entry in this table is 0
are not handled by KDB; the program's own trap handler
gets to handle then. */
#define FAULT_CODE_ORIGIN 0
#define FAULT_CODE_UNITS 4
#define FAULT_TABLE \
{ 0, 0, 0, 0, SIGTRAP, 0, 0, 0, \
0, SIGTRAP, 0, 0, 0, 0, 0, SIGKILL, \
0, 0, 0, 0, 0, 0, 0, 0, \
SIGILL }
/* Start running with a stack stretching from BEG to END.
BEG and END should be symbols meaningful to the assembler.
This is used only for kdb. */
#ifdef MOTOROLA
#define INIT_STACK(beg, end) \
{ asm (".globl end"); \
asm ("move.l $ end, sp"); \
asm ("clr.l fp"); }
#else
#ifdef ALTOS_AS
#define INIT_STACK(beg, end) \
{ asm ("global end"); \
asm ("mov.l &end,%sp"); \
asm ("clr.l %fp"); }
#else
#define INIT_STACK(beg, end) \
{ asm (".globl end"); \
asm ("movel $ end, sp"); \
asm ("clrl fp"); }
#endif
#endif
/* Push the frame pointer register on the stack. */
#ifdef MOTOROLA
#define PUSH_FRAME_PTR \
asm ("move.l fp, -(sp)");
#else
#ifdef ALTOS_AS
#define PUSH_FRAME_PTR \
asm ("mov.l %fp, -(%sp)");
#else
#define PUSH_FRAME_PTR \
asm ("movel fp, -(sp)");
#endif
#endif
/* Copy the top-of-stack to the frame pointer register. */
#ifdef MOTOROLA
#define POP_FRAME_PTR \
asm ("move.l (sp), fp");
#else
#ifdef ALTOS_AS
#define POP_FRAME_PTR \
asm ("mov.l (%sp), %fp");
#else
#define POP_FRAME_PTR \
asm ("movl (sp), fp");
#endif
#endif
/* After KDB is entered by a fault, push all registers
that GDB thinks about (all NUM_REGS of them),
so that they appear in order of ascending GDB register number.
The fault code will be on the stack beyond the last register. */
#ifdef MOTOROLA
#define PUSH_REGISTERS \
{ asm ("clr.w -(sp)"); \
asm ("pea (10,sp)"); \
asm ("movem $ 0xfffe,-(sp)"); }
#else
#ifdef ALTOS_AS
#define PUSH_REGISTERS \
{ asm ("clr.w -(%sp)"); \
asm ("pea (10,%sp)"); \
asm ("movm.l &0xfffe,-(%sp)"); }
#else
#define PUSH_REGISTERS \
{ asm ("clrw -(sp)"); \
asm ("pea 10(sp)"); \
asm ("movem $ 0xfffe,-(sp)"); }
#endif
#endif
/* Assuming the registers (including processor status) have been
pushed on the stack in order of ascending GDB register number,
restore them and return to the address in the saved PC register. */
#ifdef MOTOROLA
#define POP_REGISTERS \
{ asm ("subi.l $8,28(sp)"); \
asm ("movem (sp),$ 0xffff"); \
asm ("rte"); }
#else
#ifdef ALTOS_AS
#define POP_REGISTERS \
{ asm ("sub.l &8,28(%sp)"); \
asm ("movem (%sp),&0xffff"); \
asm ("rte"); }
#else
#define POP_REGISTERS \
{ asm ("subil $8,28(sp)"); \
asm ("movem (sp),$ 0xffff"); \
asm ("rte"); }
#endif
#endif
/* OBSOLETE /* Definitions to make GDB run on an Altos 3068 (m68k running SVR2) */
/* OBSOLETE Copyright (C) 1987,1989 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, Boston, MA 02111-1307, USA. *x/ */
/* OBSOLETE */
/* OBSOLETE #define HOST_BYTE_ORDER BIG_ENDIAN */
/* OBSOLETE */
/* OBSOLETE /* The altos support would make a good base for a port to other USGR2 systems */
/* OBSOLETE (like the 3b1 and the Convergent miniframe). *x/ */
/* OBSOLETE */
/* OBSOLETE /* This is only needed in one file, but it's cleaner to put it here than */
/* OBSOLETE putting in more #ifdef's. *x/ */
/* OBSOLETE #include <sys/page.h> */
/* OBSOLETE #include <sys/net.h> */
/* OBSOLETE */
/* OBSOLETE #define USG */
/* OBSOLETE */
/* OBSOLETE #define HAVE_TERMIO */
/* OBSOLETE */
/* OBSOLETE #define CBREAK XTABS /* It takes all kinds... *x/ */
/* OBSOLETE */
/* OBSOLETE #ifndef R_OK */
/* OBSOLETE #define R_OK 4 */
/* OBSOLETE #define W_OK 2 */
/* OBSOLETE #define X_OK 1 */
/* OBSOLETE #define F_OK 0 */
/* OBSOLETE #endif */
/* OBSOLETE */
/* OBSOLETE /* Get sys/wait.h ie. from a Sun and edit it a little (mc68000 to m68k) *x/ */
/* OBSOLETE /* Why bother? *x/ */
/* OBSOLETE #if 0 */
/* OBSOLETE #define HAVE_WAIT_STRUCT */
/* OBSOLETE #endif */
/* 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. *x/ */
/* OBSOLETE */
/* OBSOLETE #define KERNEL_U_ADDR 0x1fbf000 */
/* OBSOLETE */
/* OBSOLETE #define REGISTER_U_ADDR(addr, blockend, regno) \ */
/* OBSOLETE { if (regno <= SP_REGNUM) \ */
/* OBSOLETE addr = blockend + regno * 4; \ */
/* OBSOLETE else if (regno == PS_REGNUM) \ */
/* OBSOLETE addr = blockend + regno * 4 + 4; \ */
/* OBSOLETE else if (regno == PC_REGNUM) \ */
/* OBSOLETE addr = blockend + regno * 4 + 2; \ */
/* OBSOLETE } */
/* OBSOLETE */
/* OBSOLETE #define REGISTER_ADDR(u_ar0, regno) \ */
/* OBSOLETE (((regno) < PS_REGNUM) \ */
/* OBSOLETE ? (&((struct exception_stack *) (u_ar0))->e_regs[(regno + R0)]) \ */
/* OBSOLETE : (((regno) == PS_REGNUM) \ */
/* OBSOLETE ? ((int *) (&((struct exception_stack *) (u_ar0))->e_PS)) \ */
/* OBSOLETE : (&((struct exception_stack *) (u_ar0))->e_PC))) */
/* OBSOLETE */
/* OBSOLETE #define FP_REGISTER_ADDR(u, regno) \ */
/* OBSOLETE (((char *) \ */
/* OBSOLETE (((regno) < FPC_REGNUM) \ */
/* OBSOLETE ? (&u.u_pcb.pcb_mc68881[FMC68881_R0 + (((regno) - FP0_REGNUM) * 3)]) \ */
/* OBSOLETE : (&u.u_pcb.pcb_mc68881[FMC68881_C + ((regno) - FPC_REGNUM)]))) \ */
/* OBSOLETE - ((char *) (& u))) */
/* OBSOLETE */
/* OBSOLETE */
/* OBSOLETE #ifndef __GNUC__ */
/* OBSOLETE #undef USE_GAS */
/* OBSOLETE #define ALTOS_AS */
/* OBSOLETE #else */
/* OBSOLETE #define USE_GAS */
/* OBSOLETE #endif */
/* OBSOLETE */
/* OBSOLETE /* Motorola assembly format *x/ */
/* OBSOLETE #if !defined(USE_GAS) && !defined(ALTOS) */
/* OBSOLETE #define MOTOROLA */
/* OBSOLETE #endif */
/* OBSOLETE */
/* OBSOLETE /* Interface definitions for kernel debugger KDB. *x/ */
/* OBSOLETE */
/* OBSOLETE /* Map machine fault codes into signal numbers. */
/* OBSOLETE First subtract 0, divide by 4, then index in a table. */
/* OBSOLETE Faults for which the entry in this table is 0 */
/* OBSOLETE are not handled by KDB; the program's own trap handler */
/* OBSOLETE gets to handle then. *x/ */
/* OBSOLETE */
/* OBSOLETE #define FAULT_CODE_ORIGIN 0 */
/* OBSOLETE #define FAULT_CODE_UNITS 4 */
/* OBSOLETE #define FAULT_TABLE \ */
/* OBSOLETE { 0, 0, 0, 0, SIGTRAP, 0, 0, 0, \ */
/* OBSOLETE 0, SIGTRAP, 0, 0, 0, 0, 0, SIGKILL, \ */
/* OBSOLETE 0, 0, 0, 0, 0, 0, 0, 0, \ */
/* OBSOLETE SIGILL } */
/* OBSOLETE */
/* OBSOLETE /* Start running with a stack stretching from BEG to END. */
/* OBSOLETE BEG and END should be symbols meaningful to the assembler. */
/* OBSOLETE This is used only for kdb. *x/ */
/* OBSOLETE */
/* OBSOLETE #ifdef MOTOROLA */
/* OBSOLETE #define INIT_STACK(beg, end) \ */
/* OBSOLETE { asm (".globl end"); \ */
/* OBSOLETE asm ("move.l $ end, sp"); \ */
/* OBSOLETE asm ("clr.l fp"); } */
/* OBSOLETE #else */
/* OBSOLETE #ifdef ALTOS_AS */
/* OBSOLETE #define INIT_STACK(beg, end) \ */
/* OBSOLETE { asm ("global end"); \ */
/* OBSOLETE asm ("mov.l &end,%sp"); \ */
/* OBSOLETE asm ("clr.l %fp"); } */
/* OBSOLETE #else */
/* OBSOLETE #define INIT_STACK(beg, end) \ */
/* OBSOLETE { asm (".globl end"); \ */
/* OBSOLETE asm ("movel $ end, sp"); \ */
/* OBSOLETE asm ("clrl fp"); } */
/* OBSOLETE #endif */
/* OBSOLETE #endif */
/* OBSOLETE */
/* OBSOLETE /* Push the frame pointer register on the stack. *x/ */
/* OBSOLETE #ifdef MOTOROLA */
/* OBSOLETE #define PUSH_FRAME_PTR \ */
/* OBSOLETE asm ("move.l fp, -(sp)"); */
/* OBSOLETE #else */
/* OBSOLETE #ifdef ALTOS_AS */
/* OBSOLETE #define PUSH_FRAME_PTR \ */
/* OBSOLETE asm ("mov.l %fp, -(%sp)"); */
/* OBSOLETE #else */
/* OBSOLETE #define PUSH_FRAME_PTR \ */
/* OBSOLETE asm ("movel fp, -(sp)"); */
/* OBSOLETE #endif */
/* OBSOLETE #endif */
/* OBSOLETE */
/* OBSOLETE /* Copy the top-of-stack to the frame pointer register. *x/ */
/* OBSOLETE #ifdef MOTOROLA */
/* OBSOLETE #define POP_FRAME_PTR \ */
/* OBSOLETE asm ("move.l (sp), fp"); */
/* OBSOLETE #else */
/* OBSOLETE #ifdef ALTOS_AS */
/* OBSOLETE #define POP_FRAME_PTR \ */
/* OBSOLETE asm ("mov.l (%sp), %fp"); */
/* OBSOLETE #else */
/* OBSOLETE #define POP_FRAME_PTR \ */
/* OBSOLETE asm ("movl (sp), fp"); */
/* OBSOLETE #endif */
/* OBSOLETE #endif */
/* OBSOLETE */
/* OBSOLETE /* After KDB is entered by a fault, push all registers */
/* OBSOLETE that GDB thinks about (all NUM_REGS of them), */
/* OBSOLETE so that they appear in order of ascending GDB register number. */
/* OBSOLETE The fault code will be on the stack beyond the last register. *x/ */
/* OBSOLETE */
/* OBSOLETE #ifdef MOTOROLA */
/* OBSOLETE #define PUSH_REGISTERS \ */
/* OBSOLETE { asm ("clr.w -(sp)"); \ */
/* OBSOLETE asm ("pea (10,sp)"); \ */
/* OBSOLETE asm ("movem $ 0xfffe,-(sp)"); } */
/* OBSOLETE #else */
/* OBSOLETE #ifdef ALTOS_AS */
/* OBSOLETE #define PUSH_REGISTERS \ */
/* OBSOLETE { asm ("clr.w -(%sp)"); \ */
/* OBSOLETE asm ("pea (10,%sp)"); \ */
/* OBSOLETE asm ("movm.l &0xfffe,-(%sp)"); } */
/* OBSOLETE #else */
/* OBSOLETE #define PUSH_REGISTERS \ */
/* OBSOLETE { asm ("clrw -(sp)"); \ */
/* OBSOLETE asm ("pea 10(sp)"); \ */
/* OBSOLETE asm ("movem $ 0xfffe,-(sp)"); } */
/* OBSOLETE #endif */
/* OBSOLETE #endif */
/* OBSOLETE */
/* OBSOLETE /* Assuming the registers (including processor status) have been */
/* OBSOLETE pushed on the stack in order of ascending GDB register number, */
/* OBSOLETE restore them and return to the address in the saved PC register. *x/ */
/* OBSOLETE */
/* OBSOLETE #ifdef MOTOROLA */
/* OBSOLETE #define POP_REGISTERS \ */
/* OBSOLETE { asm ("subi.l $8,28(sp)"); \ */
/* OBSOLETE asm ("movem (sp),$ 0xffff"); \ */
/* OBSOLETE asm ("rte"); } */
/* OBSOLETE #else */
/* OBSOLETE #ifdef ALTOS_AS */
/* OBSOLETE #define POP_REGISTERS \ */
/* OBSOLETE { asm ("sub.l &8,28(%sp)"); \ */
/* OBSOLETE asm ("movem (%sp),&0xffff"); \ */
/* OBSOLETE asm ("rte"); } */
/* OBSOLETE #else */
/* OBSOLETE #define POP_REGISTERS \ */
/* OBSOLETE { asm ("subil $8,28(sp)"); \ */
/* OBSOLETE asm ("movem (sp),$ 0xffff"); \ */
/* OBSOLETE asm ("rte"); } */
/* OBSOLETE #endif */
/* OBSOLETE #endif */

View File

@@ -52,9 +52,8 @@ extern void init_extra_frame_info ();
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(frompc) \
{ (frompc) = skip_prologue (frompc); }
extern CORE_ADDR skip_prologue ();
extern CORE_ADDR m88k_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(frompc) (m88k_skip_prologue (frompc))
/* The m88k kernel aligns all instructions on 4-byte boundaries. The
kernel also uses the least significant two bits for its own hocus
@@ -446,8 +445,8 @@ extern int frameless_function_invocation ();
#define FRAME_CHAIN(thisframe) \
frame_chain (thisframe)
#define FRAMELESS_FUNCTION_INVOCATION(frame, fromleaf) \
fromleaf = frameless_function_invocation (frame)
#define FRAMELESS_FUNCTION_INVOCATION(frame) \
(frameless_function_invocation (frame))
/* Define other aspects of the stack frame. */
@@ -466,7 +465,7 @@ extern CORE_ADDR frame_locals_address ();
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(numargs, fi) ((numargs) = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */

View File

@@ -27,7 +27,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Redefine register numbers for SGI. */
#undef NUM_REGS
#undef REGISTER_NAMES
#undef MIPS_REGISTER_NAMES
#undef FP0_REGNUM
#undef PC_REGNUM
#undef PS_REGNUM
@@ -45,7 +45,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Initializer for an array of names of registers.
There should be NUM_REGS strings in this initializer. */
#define REGISTER_NAMES \
#define MIPS_REGISTER_NAMES \
{ "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", \
"t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", \
"s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", \

View File

@@ -83,7 +83,7 @@ CORE_ADDR mips_addr_bits_remove PARAMS ((CORE_ADDR addr));
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) pc = mips_skip_prologue (pc, 0)
#define SKIP_PROLOGUE(pc) (mips_skip_prologue (pc, 0))
extern CORE_ADDR mips_skip_prologue PARAMS ((CORE_ADDR addr, int lenient));
/* Return non-zero if PC points to an instruction which will cause a step
@@ -151,11 +151,16 @@ extern breakpoint_from_pc_fn mips_breakpoint_from_pc;
#define NUM_REGS 90
#endif
/* Given the register index, return the name of the corresponding
register. */
extern char *mips_register_name PARAMS ((int regnr));
#define REGISTER_NAME(i) mips_register_name (i)
/* Initializer for an array of names of registers.
There should be NUM_REGS strings in this initializer. */
#ifndef REGISTER_NAMES
#define REGISTER_NAMES \
#ifndef MIPS_REGISTER_NAMES
#define MIPS_REGISTER_NAMES \
{ "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", \
"t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", \
"s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", \
@@ -339,7 +344,7 @@ extern CORE_ADDR mips_frame_chain PARAMS ((struct frame_info *));
does not, FRAMELESS is set to 1, else 0. */
/* We handle this differently for mips, and maybe we should not */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) {(FRAMELESS) = 0;}
#define FRAMELESS_FUNCTION_INVOCATION(FI) (0)
/* Saved Pc. */
@@ -353,7 +358,7 @@ extern CORE_ADDR mips_frame_saved_pc PARAMS ((struct frame_info *));
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(num, fi) (num = mips_frame_num_args(fi))
#define FRAME_NUM_ARGS(fi) (mips_frame_num_args(fi))
extern int mips_frame_num_args PARAMS ((struct frame_info *));
/* Return number of bytes at start of arglist that are not really args. */
@@ -381,10 +386,12 @@ extern void mips_find_saved_regs PARAMS ((struct frame_info *));
function calls. We don't need STACK_ALIGN, PUSH_ARGUMENTS will
handle it. */
extern CORE_ADDR mips_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR));
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \
sp = mips_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))
extern CORE_ADDR
mips_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int, CORE_ADDR));
(mips_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)))
extern CORE_ADDR mips_push_return_address PARAMS ((CORE_ADDR pc, CORE_ADDR sp));
#define PUSH_RETURN_ADDRESS(PC, SP) (mips_push_return_address ((PC), (SP)))
/* Push an empty stack frame, to record the current PC, etc. */
@@ -438,20 +445,13 @@ typedef struct mips_extra_func_info {
PDR pdr; /* Procedure descriptor record */
} *mips_extra_func_info_t;
#define EXTRA_FRAME_INFO \
mips_extra_func_info_t proc_desc; \
int num_args;
#define INIT_EXTRA_FRAME_INFO(fromleaf, fci) init_extra_frame_info(fci)
extern void init_extra_frame_info PARAMS ((struct frame_info *));
extern void mips_init_extra_frame_info PARAMS ((int fromleaf, struct frame_info *));
#define INIT_EXTRA_FRAME_INFO(fromleaf, fci) \
mips_init_extra_frame_info(fromleaf, fci)
extern void mips_print_extra_frame_info PARAMS ((struct frame_info *frame));
#define PRINT_EXTRA_FRAME_INFO(fi) \
{ \
if (fi && fi->proc_desc && fi->proc_desc->pdr.framereg < NUM_REGS) \
printf_filtered (" frame pointer is at %s+%d\n", \
REGISTER_NAME (fi->proc_desc->pdr.framereg), \
fi->proc_desc->pdr.frameoffset); \
}
mips_print_extra_frame_info (fi)
/* It takes two values to specify a frame on the MIPS.

View File

@@ -22,8 +22,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "mips/tm-bigmips.h"
#undef REGISTER_NAMES
#define REGISTER_NAMES \
#undef MIPS_REGISTER_NAMES
#define MIPS_REGISTER_NAMES \
{ "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", \
"t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", \
"s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", \

View File

@@ -22,8 +22,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "mips/tm-mips.h"
#undef REGISTER_NAMES
#define REGISTER_NAMES \
#undef MIPS_REGISTER_NAMES
#define MIPS_REGISTER_NAMES \
{ "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", \
"t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", \
"s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", \

View File

@@ -1,5 +1,5 @@
/* Target machine description for VxWorks MIPS's, for GDB, the GNU debugger.
Copyright 1996 Free Software Foundation, Inc.
Copyright 1996, 1999 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
@@ -18,11 +18,8 @@ You 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. */
#define GDBINIT_FILENAME ".vxgdbinit"
#define DEFAULT_PROMPT "(vxgdb) "
#include "mips/tm-mips.h"
#include "tm-vxworks.h"
/* FIXME: These are almost certainly wrong. */

View File

@@ -166,18 +166,18 @@ extern CORE_ADDR mn10200_frame_saved_pc PARAMS ((struct frame_info *));
(SP) = mn10200_store_struct_return (STRUCT_ADDR, SP)
extern CORE_ADDR mn10200_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) pc = mn10200_skip_prologue (pc)
#define SKIP_PROLOGUE(pc) (mn10200_skip_prologue (pc))
#define FRAME_ARGS_SKIP 0
#define FRAME_ARGS_ADDRESS(fi) ((fi)->frame)
#define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
#define FRAME_NUM_ARGS(val, fi) ((val) = -1)
#define FRAME_NUM_ARGS(fi) (-1)
extern void mn10200_pop_frame PARAMS ((struct frame_info *));
#define POP_FRAME mn10200_pop_frame (get_current_frame ())
#define USE_GENERIC_DUMMY_FRAMES
#define USE_GENERIC_DUMMY_FRAMES 1
#define CALL_DUMMY {0}
#define CALL_DUMMY_START_OFFSET (0)
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
@@ -194,9 +194,9 @@ extern CORE_ADDR
mn10200_push_arguments PARAMS ((int, struct value **, CORE_ADDR,
unsigned char, CORE_ADDR));
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
(SP) = mn10200_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)
#define 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)
@@ -206,7 +206,8 @@ extern use_struct_convention_fn mn10200_use_struct_convention;
/* Override the default get_saved_register function with
one that takes account of generic CALL_DUMMY frames. */
#define GET_SAVED_REGISTER
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
/* Define this for Wingdb */
#define TARGET_MN10200

View File

@@ -37,8 +37,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define REGISTER_BYTES (NUM_REGS * REGISTER_SIZE)
extern char **mn10300_register_names;
#define REGISTER_NAME(i) mn10300_register_names[i]
extern char *mn10300_register_name PARAMS ((int regnr));
#define REGISTER_NAME(i) (mn10300_register_name (i))
#define D2_REGNUM 2
#define D3_REGNUM 3
@@ -65,8 +65,9 @@ extern breakpoint_from_pc_fn mn10300_breakpoint_from_pc;
#define INNER_THAN(lhs,rhs) ((lhs) < (rhs))
extern CORE_ADDR mn10300_saved_pc_after_call PARAMS ((struct frame_info *frame));
#define SAVED_PC_AFTER_CALL(frame) \
read_memory_integer (read_register (SP_REGNUM), 4)
mn10300_saved_pc_after_call (frame)
#ifdef __STDC__
struct frame_info;
@@ -92,39 +93,34 @@ extern CORE_ADDR mn10300_frame_saved_pc PARAMS ((struct frame_info *));
a function return value of type TYPE, and copy that, in virtual format,
into VALBUF. */
extern void mn10300_extract_return_value PARAMS ((struct type *type, char *regbuf, char *valbuf));
#define EXTRACT_RETURN_VALUE(TYPE, REGBUF, VALBUF) \
if (TYPE_CODE (TYPE) == TYPE_CODE_PTR) \
memcpy (VALBUF, REGBUF + REGISTER_BYTE (4), TYPE_LENGTH (TYPE)); \
else \
memcpy (VALBUF, REGBUF + REGISTER_BYTE (0), TYPE_LENGTH (TYPE));
mn10300_extract_return_value (TYPE, REGBUF, VALBUF)
CORE_ADDR mn10300_extract_struct_value_address PARAMS ((char *regbuf));
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
extract_address (REGBUF + REGISTER_BYTE (4), \
REGISTER_RAW_SIZE (4))
mn10300_extract_struct_value_address (REGBUF)
void mn10300_store_return_value PARAMS ((struct type *type, char *valbuf));
#define STORE_RETURN_VALUE(TYPE, VALBUF) \
if (TYPE_CODE (TYPE) == TYPE_CODE_PTR) \
write_register_bytes(REGISTER_BYTE (4), VALBUF, TYPE_LENGTH (TYPE)); \
else \
write_register_bytes(REGISTER_BYTE (0), VALBUF, TYPE_LENGTH (TYPE));
mn10300_store_return_value (TYPE, VALBUF)
#define STORE_STRUCT_RETURN(STRUCT_ADDR, SP) \
(SP) = mn10300_store_struct_return (STRUCT_ADDR, SP)
(mn10300_store_struct_return (STRUCT_ADDR, SP))
extern CORE_ADDR mn10300_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) pc = mn10300_skip_prologue (pc)
#define SKIP_PROLOGUE(pc) (mn10300_skip_prologue (pc))
#define FRAME_ARGS_SKIP 0
#define FRAME_ARGS_ADDRESS(fi) ((fi)->frame)
#define FRAME_LOCALS_ADDRESS(fi) ((fi)->frame)
#define FRAME_NUM_ARGS(val, fi) ((val) = -1)
#define FRAME_NUM_ARGS(fi) (-1)
extern void mn10300_pop_frame PARAMS ((struct frame_info *));
#define POP_FRAME mn10300_pop_frame (get_current_frame ())
#define USE_GENERIC_DUMMY_FRAMES
#define USE_GENERIC_DUMMY_FRAMES 1
#define CALL_DUMMY {0}
#define CALL_DUMMY_START_OFFSET (0)
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
@@ -141,9 +137,9 @@ extern CORE_ADDR
mn10300_push_arguments PARAMS ((int, struct value **, CORE_ADDR,
unsigned char, CORE_ADDR ));
#define PUSH_ARGUMENTS(NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR) \
(SP) = mn10300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR)
(mn10300_push_arguments (NARGS, ARGS, SP, STRUCT_RETURN, STRUCT_ADDR))
#define PC_IN_CALL_DUMMY(PC, SP, FP) generic_pc_in_call_dummy (PC, SP)
#define 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)
@@ -153,13 +149,10 @@ extern use_struct_convention_fn mn10300_use_struct_convention;
/* override the default get_saved_register function with
one that takes account of generic CALL_DUMMY frames */
#define GET_SAVED_REGISTER
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
/* Cons up virtual frame pointer for trace */
extern void mn10300_virtual_frame_pointer PARAMS ((CORE_ADDR, long *, long *));
#define TARGET_VIRTUAL_FRAME_POINTER(PC, REGP, OFFP) \
mn10300_virtual_frame_pointer ((PC), (REGP), (OFFP))
/* Define this for Wingdb */
#define TARGET_MN10300

View File

@@ -16,7 +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., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef __NM_GNU_H__
#define __NM_GNU_H__
@@ -40,6 +40,4 @@ extern char *gnu_target_pid_to_str (int pid);
#include "solib.h"
#define NO_CORE_OPS
#define MAINTENANCE_CMDS 1
#endif /* __NM_GNU_H__ */

View File

@@ -27,14 +27,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) \
{ register int op = read_memory_integer (pc, 1); \
if (op == 0x82) \
{ op = read_memory_integer (pc+2,1); \
if ((op & 0x80) == 0) pc += 3; \
else if ((op & 0xc0) == 0x80) pc += 4; \
else pc += 6; \
}}
extern CORE_ADDR merlin_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (merlin_skip_prologue (pc))
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines
@@ -198,30 +192,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell. */
#define FRAME_NUM_ARGS(numargs, fi) \
{ CORE_ADDR pc; \
int insn; \
int addr_mode; \
int width; \
\
pc = FRAME_SAVED_PC (fi); \
insn = read_memory_integer (pc,2); \
addr_mode = (insn >> 11) & 0x1f; \
insn = insn & 0x7ff; \
if ((insn & 0x7fc) == 0x57c \
&& addr_mode == 0x14) /* immediate */ \
{ if (insn == 0x57c) /* adjspb */ \
width = 1; \
else if (insn == 0x57d) /* adjspw */ \
width = 2; \
else if (insn == 0x57f) /* adjspd */ \
width = 4; \
numargs = read_memory_integer (pc+2,width); \
if (width > 1) \
flip_bytes (&numargs, width); \
numargs = - sign_extend (numargs, width*8) / 4; } \
else numargs = -1; \
}
extern int merlin_frame_num_args PARAMS ((struct frame_info *fi));
#define FRAME_NUM_ARGS(fi) (merlin_frame_num_args ((fi)))
/* Return number of bytes at start of arglist that are not really args. */

View File

@@ -33,14 +33,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) \
{ register unsigned char op = read_memory_integer (pc, 1); \
if (op == 0x82) { op = read_memory_integer (pc+2,1); \
if ((op & 0x80) == 0) pc += 3; \
else if ((op & 0xc0) == 0x80) pc += 4; \
else pc += 6; \
} \
}
extern CORE_ADDR umax_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (umax_skip_prologue (pc))
/* Immediately after a function call, return the saved pc.
Can't always go through the frames for this because on some machines
@@ -227,46 +221,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
extern CORE_ADDR ns32k_get_enter_addr ();
/* Return number of args passed to a frame.
Can return -1, meaning no way to tell.
Encore's C compiler often reuses same area on stack for args,
so this will often not work properly. If the arg names
are known, it's likely most of them will be printed. */
#define FRAME_NUM_ARGS(numargs, fi) \
{ CORE_ADDR pc; \
CORE_ADDR enter_addr; \
unsigned int insn; \
unsigned int addr_mode; \
int width; \
\
numargs = -1; \
enter_addr = ns32k_get_enter_addr ((fi)->pc); \
if (enter_addr > 0) \
{ \
pc = (enter_addr == 1) ? \
SAVED_PC_AFTER_CALL (fi) : \
FRAME_SAVED_PC (fi); \
insn = read_memory_integer (pc,2); \
addr_mode = (insn >> 11) & 0x1f; \
insn = insn & 0x7ff; \
if ((insn & 0x7fc) == 0x57c && \
addr_mode == 0x14) /* immediate */ \
{ \
if (insn == 0x57c) /* adjspb */ \
width = 1; \
else if (insn == 0x57d) /* adjspw */ \
width = 2; \
else if (insn == 0x57f) /* adjspd */ \
width = 4; \
numargs = read_memory_integer (pc+2,width); \
if (width > 1) \
flip_bytes (&numargs, width); \
numargs = - sign_extend (numargs, width*8) / 4;\
} \
} \
}
/* Return number of bytes at start of arglist that are not really args. */
#define FRAME_ARGS_SKIP 8
@@ -277,35 +231,8 @@ extern CORE_ADDR ns32k_get_enter_addr ();
ways in the stack frame. sp is even more special:
the address we return for it IS the sp for the next frame. */
#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
{ \
register int regmask, regnum; \
int localcount; \
register CORE_ADDR enter_addr; \
register CORE_ADDR next_addr; \
\
memset (&(frame_saved_regs), '\0', sizeof (frame_saved_regs)); \
enter_addr = ns32k_get_enter_addr ((frame_info)->pc); \
if (enter_addr > 1) \
{ \
regmask = read_memory_integer (enter_addr+1, 1) & 0xff; \
localcount = ns32k_localcount (enter_addr); \
next_addr = (frame_info)->frame + localcount; \
for (regnum = 0; regnum < 8; regnum++, regmask >>= 1) \
(frame_saved_regs).regs[regnum] = (regmask & 1) ? \
(next_addr -= 4) : 0; \
(frame_saved_regs).regs[SP_REGNUM] = (frame_info)->frame + 4;\
(frame_saved_regs).regs[PC_REGNUM] = (frame_info)->frame + 4;\
(frame_saved_regs).regs[FP_REGNUM] = \
(read_memory_integer ((frame_info)->frame, 4));\
} \
else if (enter_addr == 1) \
{ \
CORE_ADDR sp = read_register (SP_REGNUM); \
(frame_saved_regs).regs[PC_REGNUM] = sp; \
(frame_saved_regs).regs[SP_REGNUM] = sp + 4; \
} \
}
extern int umax_frame_num_args PARAMS ((struct frame_info *fi));
#define FRAME_NUM_ARGS(fi) (umax_frame_num_args ((fi)))
/* Things needed for making the inferior call functions. */

View File

@@ -56,7 +56,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* While this is for use by threaded programs, it doesn't appear
* to hurt non-threaded ones. This is used in infrun.c: */
#define PREPARE_TO_PROCEED() hppa_prepare_to_proceed()
#define PREPARE_TO_PROCEED(select_it) hppa_prepare_to_proceed()
extern int hppa_prepare_to_proceed PARAMS(( void ));
/* In infptrace.c or infttrace.c: */
@@ -279,3 +279,10 @@ extern char *hpux_pid_to_str PARAMS ((int pid));
#endif /* HAVE_HPUX_THREAD_SUPPORT */
#define HPUXHPPA
#define MAY_SWITCH_FROM_INFERIOR_PID (1)
#define MAY_FOLLOW_EXEC (1)
#define USE_THREAD_STEP_NEEDED (1)

View File

@@ -1,5 +1,5 @@
/* Parameters for execution on any Hewlett-Packard PA-RISC machine.
Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1995
Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1995, 1999
Free Software Foundation, Inc.
Contributed by the Center for Software Science at the
@@ -72,8 +72,8 @@ struct inferior_status;
/* Advance PC across any function entry prologue instructions
to reach some "real" code. */
#define SKIP_PROLOGUE(pc) pc = skip_prologue (pc)
extern CORE_ADDR skip_prologue PARAMS ((CORE_ADDR));
extern CORE_ADDR hppa_skip_prologue PARAMS ((CORE_ADDR));
#define SKIP_PROLOGUE(pc) (hppa_skip_prologue (pc))
/* If PC is in some function-call trampoline code, return the PC
where the function itself actually starts. If not, return NULL. */
@@ -437,8 +437,8 @@ extern int hppa_frame_chain_valid PARAMS ((CORE_ADDR, struct frame_info *));
/* A macro that tells us whether the function invocation represented
by FI does not have a frame on the stack associated with it. If it
does not, FRAMELESS is set to 1, else 0. */
#define FRAMELESS_FUNCTION_INVOCATION(FI, FRAMELESS) \
(FRAMELESS) = frameless_function_invocation(FI)
#define FRAMELESS_FUNCTION_INVOCATION(FI) \
(frameless_function_invocation (FI))
extern int frameless_function_invocation PARAMS ((struct frame_info *));
extern CORE_ADDR hppa_frame_saved_pc PARAMS ((struct frame_info *frame));
@@ -452,7 +452,7 @@ extern CORE_ADDR hppa_frame_saved_pc PARAMS ((struct frame_info *frame));
/* We can't tell how many args there are
now that the C compiler delays popping them. */
#define FRAME_NUM_ARGS(val,fi) (val = -1)
#define FRAME_NUM_ARGS(fi) (-1)
/* Return number of bytes at start of arglist that are not really args. */
@@ -469,7 +469,7 @@ hppa_frame_find_saved_regs PARAMS ((struct frame_info *,
/* Push an empty stack frame, to record the current PC, etc. */
#define PUSH_DUMMY_FRAME push_dummy_frame (&inf_status)
#define PUSH_DUMMY_FRAME push_dummy_frame (inf_status)
extern void push_dummy_frame PARAMS ((struct inferior_status *));
/* Discard from the stack the innermost frame,
@@ -624,7 +624,7 @@ hppa_fix_call_dummy PARAMS ((char *, CORE_ADDR, CORE_ADDR, int,
struct value **, struct type *, int));
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \
sp = hppa_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr))
(hppa_push_arguments((nargs), (args), (sp), (struct_return), (struct_addr)))
extern CORE_ADDR
hppa_push_arguments PARAMS ((int, struct value **, CORE_ADDR, int,
CORE_ADDR));
@@ -723,6 +723,7 @@ enum unwind_stub_types
PARAMETER_RELOCATION = 2,
EXPORT = 10,
IMPORT = 11,
IMPORT_SHLIB = 12,
};
/* We use the objfile->obj_private pointer for two things:

View File

@@ -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
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "rs6000/nm-rs6000.h"

View File

@@ -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
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* Use generic RS6000 definitions. */
#include "rs6000/tm-rs6000.h"

View File

@@ -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
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef TM_PPC_AIX_H
#define TM_PPC_AIX_H

View File

@@ -46,8 +46,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* FIXME: This just checks for the end of the stack, which is broken
for things like stepping through gcc nested function stubs. */
#undef PC_IN_CALL_DUMMY
#define PC_IN_CALL_DUMMY(STOP_PC, STOP_SP, STOP_FRAME_ADDR) \
(STOP_SP < STOP_PC)
/* generic dummy frame stuff */
@@ -58,11 +56,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
extern struct frame_info *rs6000_pop_frame PARAMS ((struct frame_info *frame));
extern CORE_ADDR ppc_push_return_address PARAMS ((CORE_ADDR, CORE_ADDR));
extern CORE_ADDR rs6000_push_arguments PARAMS ((int nargs,
struct value **args,
CORE_ADDR sp,
unsigned char struct_return,
CORE_ADDR struct_addr));
#undef PUSH_DUMMY_FRAME
#define PUSH_DUMMY_FRAME generic_push_dummy_frame ()
@@ -71,9 +64,10 @@ extern CORE_ADDR rs6000_push_arguments PARAMS ((int nargs,
/* override the standard get_saved_register function with
one that takes account of generic CALL_DUMMY frames */
#define GET_SAVED_REGISTER
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) \
generic_get_saved_register (raw_buffer, optimized, addrp, frame, regnum, lval)
#define USE_GENERIC_DUMMY_FRAMES
#define USE_GENERIC_DUMMY_FRAMES 1
#define CALL_DUMMY_BREAKPOINT_OFFSET (0)
#define CALL_DUMMY_LOCATION AT_ENTRY_POINT
#define CALL_DUMMY_ADDRESS() entry_point_address ()

Some files were not shown because too many files have changed in this diff Show More