This commit was manufactured by cvs2svn to create branch 'gdb-
premipsmulti-2000-06-06-branch'. Sprout from gdb_5_0-2000-04-10-branch 2000-04-09 12:17:37 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch' Cherrypick from master 2000-06-03 01:57:29 UTC Alan Modra <modra@gmail.com> 'Fix name clash': ChangeLog MAINTAINERS Makefile.in config.guess config.sub configure configure.in djunpack.bat include/ChangeLog include/bfdlink.h include/coff/ChangeLog include/coff/ia64.h include/coff/internal.h include/coff/pe.h include/coff/rs6k64.h include/coff/ti.h include/dis-asm.h include/elf/ChangeLog include/elf/common.h include/elf/ia64.h include/elf/mips.h include/elf/mn10300.h include/elf/reloc-macros.h include/filenames.h include/floatformat.h include/opcode/ChangeLog include/opcode/cgen.h include/opcode/d10v.h include/opcode/h8300.h include/opcode/hppa.h include/opcode/i386.h include/opcode/ia64.h include/opcode/ppc.h include/opcode/tic54x.h ltmain.sh texinfo/texinfo.tex
This commit is contained in:
parent
80546f570d
commit
4db0b146b8
102
ChangeLog
102
ChangeLog
|
@ -1,3 +1,105 @@
|
|||
Mon May 29 13:50:03 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* texinfo/texinfo.tex: Update. Version from makeinfo 4.0.
|
||||
|
||||
Tue May 30 19:01:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* config.sub: Import CVS version 1.167 Tue May 30 09:00:07 2000.
|
||||
* config.guess: Import CVS version 1.148 Tue May 30 09:00:06 2000
|
||||
|
||||
20000-05-21 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* configure: Revert changes made on May 18 and May 19.
|
||||
|
||||
* Makefile.in (CC_FOR_TARGET): Make sure as/ld in the gcc
|
||||
directory are used if they exist. Make sure
|
||||
$(build_tooldir)/include is searched for header files,
|
||||
$(build_tooldir)/lib/ for library files.
|
||||
(GCC_FOR_TARGET): Likewise.
|
||||
(CXX_FOR_TARGET): Likewise.
|
||||
|
||||
20000-05-19 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* configure: Provide --disable-target-dir-sanity-checking to
|
||||
disable the gcc directory checking for cross compiling.
|
||||
|
||||
20000-05-18 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* configure: Ask to create the gcc directory for cross
|
||||
compiling if necessary.
|
||||
|
||||
Thu May 18 10:58:13 2000 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure.in (hppa*64*-*-*): Do build ld for this configuration.
|
||||
|
||||
2000-05-18 David Edelsohn <edelsohn@gnu.org>
|
||||
|
||||
* configure.in: Special case powerpc*-*-aix* target_makefile_frag.
|
||||
|
||||
Wed May 17 16:03:48 2000 Alexandre Oliva <aoliva@cygnus.com>
|
||||
|
||||
* Makefile.in (configure-target-libiberty): Depend on
|
||||
configure-target-newlib.
|
||||
|
||||
Tue May 16 10:06:21 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
Thu Apr 27 11:01:48 2000 Andrew Cagney <cagney@b1.cygnus.com>:
|
||||
* Makefile.in (do-tar-bz2, do-md5sum): Skip CVS directories.
|
||||
|
||||
Tue May 16 09:57:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
Wed Apr 26 17:03:53 2000 Andrew Cagney <cagney@b1.cygnus.com>:
|
||||
* Makefile.in (do-djunpack): New target. Update djunpack.bat with
|
||||
current version information. Add to proto-toplev directory.
|
||||
(gdb-taz): Build do-djunpack.
|
||||
|
||||
2000-05-13 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||||
|
||||
* ltmain.sh: Preserve in relink_command any environment
|
||||
variables that may affect the linker behavior.
|
||||
|
||||
Fri May 12 11:23:17 2000 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* config.sub (basic_machine): Recognize hppa64 as a valid cpu type.
|
||||
|
||||
Wed May 10 21:26:51 2000 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* configure.in (ia64*-*-elf*): Add gdb and friends to noconfigdirs.
|
||||
|
||||
2000-05-08 Eli Zaretskii <eliz@is.elta.co.il>
|
||||
|
||||
* djunpack.bat: Change the Sed script to replace @V@ in fnchange.lst
|
||||
with the version name.
|
||||
|
||||
2000-04-23 Eli Zaretskii <eliz@is.elta.co.il>
|
||||
|
||||
* djunpack.bat: New file.
|
||||
|
||||
2000-04-21 Michael Meissner <meissner@redhat.com>
|
||||
|
||||
* config.sub (d30v): Add d30v as a basic machine type.
|
||||
|
||||
Wed Apr 19 12:46:26 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in (taz, gdb-taz, gas.tar.bz2, binutils.tar.bz2,
|
||||
gas+binutils.tar.bz2, libg++.tar.bz2, gnats.tar.bz2, gdb.tar.bz2,
|
||||
dejagnu.tar.bz2, gdb+dejagnu.tar.bz2, insight.tar.bz2,
|
||||
insight+dejagnu.tar.bz2, newlib.tar.bz2): Pass MD5PROG to sub-make.
|
||||
|
||||
Wed Apr 12 16:42:48 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* Makefile.in (gdb-taz): New target. GDB specific archive.
|
||||
(do-md5sum): New target.
|
||||
(MD5PROG): Define.
|
||||
(PACKAGE): Default to TOOL.
|
||||
(VER): Default to a shell script.
|
||||
(taz): Rewrite target. Move real work to do-proto-toplev. Include
|
||||
md5 checksum generation.
|
||||
(do-proto-toplev): New target. Create $(PACKAGE)-$(VER) link.
|
||||
(do-tar-bz2): Delete creation of $(PACKAGE)-$(VER) link.
|
||||
(gdb.tar.bz2, dejagnu.tar.bz2, gdb+dejagnu.tar.bz2,
|
||||
insight.tar.bz2): Use gdb-taz to create archive.
|
||||
|
||||
Fri Apr 7 18:10:29 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* configure (warn_cflags): Delete.
|
||||
|
|
|
@ -6,7 +6,7 @@ COPYING, COPYING.LIB, README
|
|||
|
||||
Makefile.in, configure, configure.in
|
||||
Please notify the following of any committed patches.
|
||||
bfd@sourceware.cygnus.com
|
||||
binutils@sourceware.cygnus.com
|
||||
gdb-patches@sourceware.cygnus.com
|
||||
|
||||
bfd/, binutils/, gas/, gprof/, ld/, opcodes/ & BFD's part of include/
|
||||
|
|
113
Makefile.in
113
Makefile.in
|
@ -111,6 +111,7 @@ NM = nm
|
|||
LD = ld
|
||||
|
||||
BZIPPROG = bzip2
|
||||
MD5PROG = md5sum
|
||||
|
||||
# These values are substituted by configure.
|
||||
DEFAULT_YACC = yacc
|
||||
|
@ -222,7 +223,7 @@ CC_FOR_TARGET = ` \
|
|||
;; \
|
||||
esac \
|
||||
else \
|
||||
echo $$r/gcc/xgcc -B$$r/gcc/; \
|
||||
echo $$r/gcc/xgcc -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -B$$r/gcc/ -isystem $(build_tooldir)/include; \
|
||||
fi; \
|
||||
else \
|
||||
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
|
@ -236,7 +237,7 @@ CC_FOR_TARGET = ` \
|
|||
# variable is passed down to the gcc Makefile, where it is used to
|
||||
# build libgcc2.a. We define it here so that it can itself be
|
||||
# overridden on the command line.
|
||||
GCC_FOR_TARGET = $$r/gcc/xgcc -B$$r/gcc/
|
||||
GCC_FOR_TARGET = $$r/gcc/xgcc -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -B$$r/gcc/ -I$(build_tooldir)/include
|
||||
|
||||
CHILL_FOR_TARGET = ` \
|
||||
if [ -f $$r/gcc/xgcc ] ; then \
|
||||
|
@ -261,7 +262,7 @@ CXX_FOR_TARGET = ` \
|
|||
;; \
|
||||
esac \
|
||||
else \
|
||||
echo $$r/gcc/xgcc -B$$r/gcc/; \
|
||||
echo $$r/gcc/g++ -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -B$$r/gcc/ -I$(build_tooldir)/include; \
|
||||
fi; \
|
||||
else \
|
||||
if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
|
||||
|
@ -1628,7 +1629,7 @@ all-target-winsup: all-target-newlib all-target-libiberty all-target-libtermcap
|
|||
configure-target-winsup: configure-target-newlib
|
||||
all-uudecode: all-libiberty
|
||||
all-zip:
|
||||
configure-target-libiberty: $(ALL_GCC)
|
||||
configure-target-libiberty: $(ALL_GCC) configure-target-newlib
|
||||
all-target-libiberty: configure-target-libiberty all-gcc all-ld all-target-newlib
|
||||
all-target: $(ALL_TARGET_MODULES)
|
||||
install-target: $(INSTALL_TARGET_MODULES)
|
||||
|
@ -1690,9 +1691,52 @@ ETC_SUPPORT= Makefile.in configure configure.in standards.texi \
|
|||
# this macro.
|
||||
SUPPORT_FILES = list-of-support-files-for-tool-in-question
|
||||
|
||||
.PHONY: taz
|
||||
# NOTE: No double quotes in the below. It is used within shell script
|
||||
# as VER="$(VER)"
|
||||
VER = ` if grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \
|
||||
sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \
|
||||
else \
|
||||
sed < $(TOOL)/Makefile.in -n 's/^VERSION *= *//p'; \
|
||||
fi`
|
||||
PACKAGE = $(TOOL)
|
||||
|
||||
.PHONY: taz
|
||||
taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
|
||||
$(MAKE) -f Makefile.in do-proto-toplev \
|
||||
TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(SUPPORT_FILES)"
|
||||
$(MAKE) -f Makefile.in do-md5sum \
|
||||
TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(SUPPORT_FILES)"
|
||||
$(MAKE) -f Makefile.in do-tar-bz2 \
|
||||
TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(SUPPORT_FILES)"
|
||||
|
||||
.PHONY: gdb-taz
|
||||
gdb-taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
|
||||
$(MAKE) -f Makefile.in do-proto-toplev \
|
||||
TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(SUPPORT_FILES)"
|
||||
$(MAKE) -f Makefile.in do-md5sum \
|
||||
TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(SUPPORT_FILES)"
|
||||
$(MAKE) -f Makefile.in do-djunpack \
|
||||
TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(SUPPORT_FILES)"
|
||||
$(MAKE) -f Makefile.in do-tar-bz2 \
|
||||
TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(SUPPORT_FILES)"
|
||||
|
||||
.PHONY: do-proto-toplev
|
||||
do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
|
||||
echo "==> Making $(PACKAGE)-$(VER)/"
|
||||
# Take out texinfo from a few places.
|
||||
sed -e '/^all\.normal: /s/\all-texinfo //' \
|
||||
-e '/^ install-texinfo /d' \
|
||||
|
@ -1742,25 +1786,35 @@ taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
|
|||
ln -s ../../../texinfo/util/tex3patch proto-toplev/texinfo/util ; \
|
||||
else true; fi
|
||||
chmod -R og=u . || chmod og=u `find . -print`
|
||||
if grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \
|
||||
ver=`sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'`; \
|
||||
else \
|
||||
ver=`sed <$(TOOL)/Makefile.in -n 's/^VERSION *= *//p'`; \
|
||||
fi; \
|
||||
if test x"$(PACKAGE)" = x; then \
|
||||
package="$(TOOL)"; \
|
||||
else \
|
||||
package="$(PACKAGE)"; \
|
||||
fi; \
|
||||
$(MAKE) -f Makefile.in do-tar-bz2 TOOL=$(TOOL) VER=$$ver PACKAGE=$$package
|
||||
|
||||
do-tar-bz2:
|
||||
echo "==> Making $(PACKAGE)-$(VER).tar.bz2"
|
||||
#
|
||||
-rm -f $(PACKAGE)-$(VER)
|
||||
ln -s proto-toplev $(PACKAGE)-$(VER)
|
||||
tar cfh $(PACKAGE)-$(VER).tar $(PACKAGE)-$(VER)
|
||||
|
||||
.PHONY: do-tar-bz2
|
||||
do-tar-bz2:
|
||||
echo "==> Making $(PACKAGE)-$(VER).tar.bz2"
|
||||
-rm -f $(PACKAGE)-$(VER).tar.bz2
|
||||
find $(PACKAGE)-$(VER) -follow -name CVS -prune -o -type f -print \
|
||||
| tar cTfh - $(PACKAGE)-$(VER).tar
|
||||
$(BZIPPROG) -v -9 $(PACKAGE)-$(VER).tar
|
||||
|
||||
.PHONY: do-md5sum
|
||||
do-md5sum:
|
||||
echo "==> Adding md5 checksum to top-level directory"
|
||||
cd proto-toplev && find * -follow -name CVS -prune -o -type f -print \
|
||||
| xargs $(MD5PROG) > ../md5.sum
|
||||
mv md5.sum proto-toplev
|
||||
|
||||
.PHONY: do-djunpack
|
||||
do-djunpack:
|
||||
echo "==> Adding updated djunpack.bat to top-level directory"
|
||||
echo - 's /gdb-[0-9\.]*/gdb-'"$(VER)"'/'
|
||||
sed < djunpack.bat > djunpack.new \
|
||||
-e 's/gdb-[0-9][0-9\.]*/gdb-'"$(VER)"'/'
|
||||
mv djunpack.new djunpack.bat
|
||||
-rm -f proto-toplev/djunpack.bat
|
||||
ln -s ../djunpack.bat proto-toplev/djunpack.bat
|
||||
|
||||
TEXINFO_SUPPORT= texinfo/texinfo.tex
|
||||
DIST_SUPPORT= $(DEVO_SUPPORT) $(TEXINFO_SUPPORT)
|
||||
|
||||
|
@ -1768,6 +1822,7 @@ DIST_SUPPORT= $(DEVO_SUPPORT) $(TEXINFO_SUPPORT)
|
|||
GAS_SUPPORT_DIRS= bfd include libiberty opcodes intl setup.com makefile.vms mkdep
|
||||
gas.tar.bz2: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas
|
||||
$(MAKE) -f Makefile.in taz TOOL=gas \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(GAS_SUPPORT_DIRS)"
|
||||
|
||||
# The FSF "binutils" release includes gprof and ld.
|
||||
|
@ -1775,53 +1830,62 @@ gas.tar.bz2: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas
|
|||
BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld gprof intl setup.com makefile.vms mkdep
|
||||
binutils.tar.bz2: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils
|
||||
$(MAKE) -f Makefile.in taz TOOL=binutils \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS)"
|
||||
|
||||
.PHONY: gas+binutils.tar.bz2
|
||||
GASB_SUPPORT_DIRS= $(GAS_SUPPORT_DIRS) binutils ld gprof
|
||||
gas+binutils.tar.bz2: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas
|
||||
$(MAKE) -f Makefile.in taz TOOL=gas \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(GASB_SUPPORT_DIRS)"
|
||||
|
||||
.PHONY: libg++.tar.bz2
|
||||
LIBGXX_SUPPORT_DIRS=include libstdc++ libio librx libiberty
|
||||
libg++.tar.bz2: $(DIST_SUPPORT) libg++
|
||||
$(MAKE) -f Makefile.in taz TOOL=libg++ \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(LIBGXX_SUPPORT_DIRS)"
|
||||
|
||||
GNATS_SUPPORT_DIRS=include libiberty send-pr
|
||||
gnats.tar.bz2: $(DIST_SUPPORT) $(GNATS_SUPPORT_DIRS) gnats
|
||||
$(MAKE) -f Makefile.in taz TOOL=gnats \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(GNATS_SUPPORT_DIRS)"
|
||||
|
||||
.PHONY: gdb.tar.bz2
|
||||
GDB_SUPPORT_DIRS= bfd include libiberty mmalloc opcodes readline sim utils intl
|
||||
gdb.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
|
||||
$(MAKE) -f Makefile.in taz TOOL=gdb \
|
||||
$(MAKE) -f Makefile.in gdb-taz TOOL=gdb \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(GDB_SUPPORT_DIRS)"
|
||||
|
||||
.PHONY: dejagnu.tar.bz2
|
||||
DEJAGNU_SUPPORT_DIRS= tcl expect libiberty
|
||||
dejagnu.tar.bz2: $(DIST_SUPPORT) $(DEJAGNU_SUPPORT_DIRS) dejagnu
|
||||
$(MAKE) -f Makefile.in taz TOOL=dejagnu \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(DEJAGNU_SUPPORT_DIRS)"
|
||||
|
||||
.PHONY: gdb+dejagnu.tar.bz2
|
||||
GDBD_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl expect dejagnu
|
||||
gdb+dejagnu.tar.bz2: $(DIST_SUPPORT) $(GDBD_SUPPORT_DIRS) gdb
|
||||
$(MAKE) -f Makefile.in taz TOOL=gdb PACKAGE=gdb+dejagnu \
|
||||
$(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE=gdb+dejagnu \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(GDBD_SUPPORT_DIRS)"
|
||||
|
||||
.PHONY: insight.tar.bz2
|
||||
INSIGHT_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl tk itcl tix libgui
|
||||
insight.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
|
||||
$(MAKE) -f Makefile.in taz TOOL=gdb PACKAGE=insight \
|
||||
$(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE=insight \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)"
|
||||
|
||||
.PHONY: insight+dejagnu.tar.bz2
|
||||
INSIGHTD_SUPPORT_DIRS= $(INSIGHT_SUPPORT_DIRS) expect dejagnu
|
||||
insight+dejagnu.tar.bz2: $(DIST_SUPPORT) $(INSIGHTD_SUPPORT_DIRS) gdb
|
||||
$(MAKE) -f Makefile.in taz TOOL=gdb PACKAGE="insight+dejagnu" \
|
||||
$(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE="insight+dejagnu" \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(INSIGHTD_SUPPORT_DIRS)"
|
||||
|
||||
.PHONY: newlib.tar.bz2
|
||||
|
@ -1839,6 +1903,7 @@ NEWLIB_SUPPORT_DIRS=libgloss
|
|||
# supports newlib (if only minimally).
|
||||
newlib.tar.bz2: $(DIST_SUPPORT) $(NEWLIB_SUPPORT_DIRS) newlib
|
||||
$(MAKE) -f Makefile.in taz TOOL=newlib \
|
||||
MD5PROG="$(MD5PROG)" \
|
||||
SUPPORT_FILES="$(NEWLIB_SUPPORT_DIRS)" \
|
||||
DEVO_SUPPORT="$(DEVO_SUPPORT) COPYING.NEWLIB" newlib
|
||||
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
# Attempt to guess a canonical system name.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
|
||||
version='2000-05-30'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
|
@ -36,6 +38,46 @@
|
|||
# (but try to keep the structure clean).
|
||||
#
|
||||
|
||||
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]
|
||||
|
||||
Output the configuration name of this system.
|
||||
|
||||
Operation modes:
|
||||
-h, --help print this help, then exit
|
||||
-V, --version print version number, then exit"
|
||||
|
||||
help="
|
||||
Try \`$me --help' for more information."
|
||||
|
||||
# Parse command line
|
||||
while test $# -gt 0 ; do
|
||||
case "$1" in
|
||||
--version | --vers* | -V )
|
||||
echo "$version" ; exit 0 ;;
|
||||
--help | --h* | -h )
|
||||
echo "$usage"; exit 0 ;;
|
||||
-- ) # Stop option processing
|
||||
shift; break ;;
|
||||
- ) # Use stdin as input.
|
||||
break ;;
|
||||
-* )
|
||||
exec >&2
|
||||
echo "$me: invalid option $1"
|
||||
echo "$help"
|
||||
exit 1 ;;
|
||||
* )
|
||||
break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test $# != 0; then
|
||||
echo "$me: too many arguments$help" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Use $HOST_CC if defined. $CC may point to a cross-compiler
|
||||
if test x"$CC_FOR_BUILD" = x; then
|
||||
if test x"$HOST_CC" != x; then
|
||||
|
@ -266,7 +308,7 @@ EOF
|
|||
exit 0 ;;
|
||||
# The situation for MiNT is a little confusing. The machine name
|
||||
# can be virtually everything (everything which is not
|
||||
# "atarist" or "atariste" at least should have a processor
|
||||
# "atarist" or "atariste" at least should have a processor
|
||||
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
|
||||
# to the lowercase version "mint" (or "freemint"). Finally
|
||||
# the system name "TOS" denotes a system which is actually not
|
||||
|
@ -360,7 +402,7 @@ EOF
|
|||
AViiON:dgux:*:*)
|
||||
# DG/UX returns AViiON for all architectures
|
||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110]
|
||||
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
|
||||
then
|
||||
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
|
||||
[ ${TARGET_BINARY_INTERFACE}x = x ]
|
||||
|
@ -458,6 +500,8 @@ EOF
|
|||
9000/[34]?? ) HP_ARCH=m68k ;;
|
||||
9000/[678][0-9][0-9])
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
|
||||
#define _HPUX_SOURCE
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
@ -588,7 +632,7 @@ EOF
|
|||
echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit 0 ;;
|
||||
CRAY*SV1:*:*:*)
|
||||
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit 0 ;;
|
||||
CRAY-2:*:*:*)
|
||||
echo cray2-cray-unicos
|
||||
|
@ -604,7 +648,7 @@ EOF
|
|||
hp300:OpenBSD:*:*)
|
||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
|
||||
i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
sparc*:BSD/OS:*:*)
|
||||
|
@ -614,12 +658,6 @@ EOF
|
|||
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
*:FreeBSD:*:*)
|
||||
if test -x /usr/bin/objformat; then
|
||||
if test "elf" = "`/usr/bin/objformat`"; then
|
||||
echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
||||
exit 0 ;;
|
||||
*:OpenBSD:*:*)
|
||||
|
@ -670,6 +708,10 @@ EOF
|
|||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
||||
exit 0
|
||||
;;
|
||||
elf_i?86)
|
||||
echo "${UNAME_MACHINE}-pc-linux"
|
||||
exit 0
|
||||
;;
|
||||
i?86coff)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
||||
exit 0
|
||||
|
@ -721,11 +763,15 @@ EOF
|
|||
if test "$?" = 0 ; then
|
||||
LIBC="libc1"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
rm -f $dummy.c $dummy
|
||||
echo powerpc-unknown-linux-gnu${LIBC}
|
||||
exit 0
|
||||
;;
|
||||
shelf_linux)
|
||||
echo "${UNAME_MACHINE}-unknown-linux-gnu"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "${UNAME_MACHINE}" = "alpha" ; then
|
||||
|
@ -1018,14 +1064,26 @@ EOF
|
|||
*:Rhapsody:*:*)
|
||||
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
Power*:Mac*OS:*:*)
|
||||
echo powerpc-apple-macos${UNAME_RELEASE}
|
||||
*:Darwin:*:*)
|
||||
echo `uname -p`-apple-darwin${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
*:Mac*OS:*:*)
|
||||
echo ${UNAME_MACHINE}-apple-macos${UNAME_RELEASE}
|
||||
*:procnto*:*:* | *:QNX:[0123456789]*:*)
|
||||
if test "${UNAME_MACHINE}" = "x86pc"; then
|
||||
UNAME_MACHINE=pc
|
||||
fi
|
||||
echo `uname -p`-${UNAME_MACHINE}-nto-qnx
|
||||
exit 0 ;;
|
||||
*:QNX:*:4*)
|
||||
echo i386-qnx-qnx${UNAME_VERSION}
|
||||
echo i386-pc-qnx
|
||||
exit 0 ;;
|
||||
NSR-W:NONSTOP_KERNEL:*:*)
|
||||
echo nsr-tandem-nsk${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
BS2000:POSIX*:*:*)
|
||||
echo bs2000-siemens-sysv
|
||||
exit 0 ;;
|
||||
DS/*:UNIX_System_V:*:*)
|
||||
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
esac
|
||||
|
||||
|
@ -1166,6 +1224,47 @@ then
|
|||
esac
|
||||
fi
|
||||
|
||||
#echo '(Unable to guess system type)' 1>&2
|
||||
cat >&2 <<EOF
|
||||
$0: unable to guess system type
|
||||
|
||||
The $version version of this script cannot recognize your system type.
|
||||
Please download the most up to date version of the config scripts:
|
||||
|
||||
ftp://ftp.gnu.org/pub/gnu/config/
|
||||
|
||||
If the version you run ($0) is already up to date, please
|
||||
send the following data and any information you think might be
|
||||
pertinent to <config-patches@gnu.org> in order to provide the needed
|
||||
information to handle your system.
|
||||
|
||||
config.guess version = $version
|
||||
|
||||
uname -m = `(uname -m) 2>/dev/null || echo unknown`
|
||||
uname -r = `(uname -r) 2>/dev/null || echo unknown`
|
||||
uname -s = `(uname -s) 2>/dev/null || echo unknown`
|
||||
uname -v = `(uname -v) 2>/dev/null || echo unknown`
|
||||
|
||||
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
|
||||
/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
|
||||
|
||||
hostinfo = `(hostinfo) 2>/dev/null`
|
||||
/bin/universe = `(/bin/universe) 2>/dev/null`
|
||||
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
|
||||
/bin/arch = `(/bin/arch) 2>/dev/null`
|
||||
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
|
||||
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
|
||||
|
||||
UNAME_MACHINE = ${UNAME_MACHINE}
|
||||
UNAME_RELEASE = ${UNAME_RELEASE}
|
||||
UNAME_SYSTEM = ${UNAME_SYSTEM}
|
||||
UNAME_VERSION = ${UNAME_VERSION}
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "version='"
|
||||
# time-stamp-format: "%:y-%02m-%02d"
|
||||
# time-stamp-end: "'"
|
||||
# End:
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
# Configuration validation subroutine script, version 1.1.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
|
||||
version='2000-05-30'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
# can handle that machine. It does not imply ALL GNU software can.
|
||||
|
@ -50,30 +52,61 @@
|
|||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
||||
# It is wrong to echo any other type of specification.
|
||||
|
||||
if [ x$1 = x ]
|
||||
then
|
||||
echo Configuration name missing. 1>&2
|
||||
echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
|
||||
echo "or $0 ALIAS" 1>&2
|
||||
echo where ALIAS is a recognized configuration type. 1>&2
|
||||
exit 1
|
||||
fi
|
||||
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||
|
||||
# First pass through any local machine types.
|
||||
case $1 in
|
||||
*local*)
|
||||
echo $1
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
usage="\
|
||||
Usage: $0 [OPTION] CPU-MFR-OPSYS
|
||||
$0 [OPTION] ALIAS
|
||||
|
||||
Canonicalize a configuration name.
|
||||
|
||||
Operation modes:
|
||||
-h, --help print this help, then exit
|
||||
-V, --version print version number, then exit"
|
||||
|
||||
help="
|
||||
Try \`$me --help' for more information."
|
||||
|
||||
# Parse command line
|
||||
while test $# -gt 0 ; do
|
||||
case "$1" in
|
||||
--version | --vers* | -V )
|
||||
echo "$version" ; exit 0 ;;
|
||||
--help | --h* | -h )
|
||||
echo "$usage"; exit 0 ;;
|
||||
-- ) # Stop option processing
|
||||
shift; break ;;
|
||||
- ) # Use stdin as input.
|
||||
break ;;
|
||||
-* )
|
||||
exec >&2
|
||||
echo "$me: invalid option $1"
|
||||
echo "$help"
|
||||
exit 1 ;;
|
||||
|
||||
*local*)
|
||||
# First pass through any local machine types.
|
||||
echo $1
|
||||
exit 0;;
|
||||
|
||||
* )
|
||||
break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
case $# in
|
||||
0) echo "$me: missing argument$help" >&2
|
||||
exit 1;;
|
||||
1) ;;
|
||||
*) echo "$me: too many arguments$help" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
|
||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||
case $maybe_os in
|
||||
linux-gnu*)
|
||||
nto-qnx* | linux-gnu*)
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
;;
|
||||
|
@ -174,7 +207,9 @@ case $basic_machine in
|
|||
tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
|
||||
| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
|
||||
| 580 | i960 | h8300 \
|
||||
| x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \
|
||||
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
|
||||
| hppa64 \
|
||||
| alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
|
||||
| alphaev6[78] \
|
||||
| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
|
||||
|
@ -207,7 +242,9 @@ case $basic_machine in
|
|||
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
|
||||
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
|
||||
| xmp-* | ymp-* \
|
||||
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* | hppa2.0n-* \
|
||||
| x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
|
||||
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
|
||||
| hppa2.0n-* | hppa64-* \
|
||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
|
||||
| alphaev6[78]-* \
|
||||
| we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
|
||||
|
@ -219,7 +256,8 @@ case $basic_machine in
|
|||
| mipstx39-* | mipstx39el-* | mcore-* \
|
||||
| f301-* | armv*-* | s390-* | sv1-* | t3e-* \
|
||||
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
|
||||
| thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* )
|
||||
| thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \
|
||||
| bs2000-*)
|
||||
;;
|
||||
# Recognize the various machine names and aliases which stand
|
||||
# for a CPU type and a company and sometimes even an OS.
|
||||
|
@ -471,9 +509,6 @@ case $basic_machine in
|
|||
basic_machine=i386-unknown
|
||||
os=-mingw32
|
||||
;;
|
||||
i386-qnx | qnx)
|
||||
basic_machine=i386-qnx
|
||||
;;
|
||||
iris | iris4d)
|
||||
basic_machine=mips-sgi
|
||||
case $os in
|
||||
|
@ -596,6 +631,9 @@ case $basic_machine in
|
|||
np1)
|
||||
basic_machine=np1-gould
|
||||
;;
|
||||
nsr-tandem)
|
||||
basic_machine=nsr-tandem
|
||||
;;
|
||||
op50n-* | op60c-*)
|
||||
basic_machine=hppa1.1-oki
|
||||
os=-proelf
|
||||
|
@ -933,9 +971,22 @@ case $os in
|
|||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
| -interix* | -uwin* | -rhapsody* | -opened* | -openstep* | -oskit*)
|
||||
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
|
||||
| -openstep* | -oskit*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
case $basic_machine in
|
||||
x86-* | i[34567]86-*)
|
||||
;;
|
||||
*)
|
||||
os=-nto$os
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-nto*)
|
||||
os=-nto-qnx
|
||||
;;
|
||||
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
|
||||
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
|
||||
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
|
||||
|
@ -982,6 +1033,9 @@ case $os in
|
|||
-ns2 )
|
||||
os=-nextstep2
|
||||
;;
|
||||
-nsk)
|
||||
os=-nsk
|
||||
;;
|
||||
# Preserve the version number of sinix5.
|
||||
-sinix5.*)
|
||||
os=`echo $os | sed -e 's|sinix|sysv|'`
|
||||
|
@ -995,9 +1049,6 @@ case $os in
|
|||
-oss*)
|
||||
os=-sysv3
|
||||
;;
|
||||
-qnx)
|
||||
os=-qnx4
|
||||
;;
|
||||
-svr4)
|
||||
os=-sysv4
|
||||
;;
|
||||
|
@ -1248,3 +1299,11 @@ case $basic_machine in
|
|||
esac
|
||||
|
||||
echo $basic_machine$os
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "version='"
|
||||
# time-stamp-format: "%:y-%02m-%02d"
|
||||
# time-stamp-end: "'"
|
||||
# End:
|
||||
|
|
10
configure.in
10
configure.in
|
@ -656,7 +656,8 @@ case "${target}" in
|
|||
;;
|
||||
hppa*-*-*elf* | \
|
||||
hppa*-*-linux-gnu* | \
|
||||
hppa*-*-lites*)
|
||||
hppa*-*-lites* | \
|
||||
hppa*64*-*-*)
|
||||
# Do configure ld/binutils/gas for the above cases.
|
||||
;;
|
||||
hppa*-*-*)
|
||||
|
@ -669,6 +670,10 @@ case "${target}" in
|
|||
esac
|
||||
noconfigdirs="$noconfigdirs ld shellutils"
|
||||
;;
|
||||
ia64*-*-elf*)
|
||||
# No gdb support yet.
|
||||
noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
|
||||
;;
|
||||
i[3456]86-*-coff | i[3456]86-*-elf)
|
||||
if [ x${is_cross_compiler} != xno ] ; then
|
||||
target_configdirs="${target_configdirs} target-libstub target-cygmon"
|
||||
|
@ -1047,6 +1052,9 @@ if [ x${shared} = xyes ]; then
|
|||
i[3456]86-*)
|
||||
target_makefile_frag="${target_makefile_frag} config/mt-x86pic"
|
||||
;;
|
||||
powerpc*-*-aix*)
|
||||
# We don't want -fPIC on AIX.
|
||||
;;
|
||||
powerpc*-*)
|
||||
target_makefile_frag="${target_makefile_frag} config/mt-ppcpic"
|
||||
;;
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
@echo off
|
||||
Rem
|
||||
Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line
|
||||
Rem format, or else stock DOS/Windows shells will refuse to run it.
|
||||
Rem
|
||||
Rem This batch file unpacks the GDB distribution while simultaneously
|
||||
Rem renaming some of the files whose names are invalid on DOS or conflict
|
||||
Rem with other file names after truncation to DOS 8+3 namespace.
|
||||
Rem
|
||||
Rem Invoke like this:
|
||||
Rem
|
||||
Rem djunpack gdb-XYZ.tar
|
||||
Rem
|
||||
Rem where XYZ is the version number. If the argument includes leading
|
||||
Rem directories, it MUST use backslashes, not forward slashes.
|
||||
Rem
|
||||
Rem The following 2 lines need to be changed with each new GDB release, to
|
||||
Rem be identical to the name of the top-level directory where the GDB
|
||||
Rem distribution unpacks itself.
|
||||
set GDBVER=gdb-5.0
|
||||
if "%GDBVER%"=="gdb-5.0" GoTo EnvOk
|
||||
Rem If their environment space is too small, re-exec with a larger one
|
||||
command.com /e:4096 /c %0 %1
|
||||
GoTo End
|
||||
:EnvOk
|
||||
if not exist %1 GoTo NoArchive
|
||||
djtar -x -p -o %GDBVER%/gdb/config/djgpp/fnchange.lst %1 > fnchange.tmp
|
||||
Rem The following uses a feature of COPY whereby it does not copy
|
||||
Rem empty files. We need that because the previous line will create
|
||||
Rem an empty fnchange.tmp even if the command failed for some reason.
|
||||
copy fnchange.tmp junk.tmp > nul
|
||||
if not exist junk.tmp GoTo NoDjTar
|
||||
del junk.tmp
|
||||
sed -e 's,@V@,%GDBVER%,g' < fnchange.tmp > fnchange.lst
|
||||
Rem See the comment above about the reason for using COPY.
|
||||
copy fnchange.lst junk.tmp > nul
|
||||
if not exist junk.tmp GoTo NoSed
|
||||
del junk.tmp
|
||||
djtar -x -n fnchange.lst %1
|
||||
GoTo End
|
||||
:NoSed
|
||||
echo FAIL: Sed is not available.
|
||||
GoTo End
|
||||
:NoDjTar
|
||||
echo FAIL: DJTAR is not available or no fnchange.lst file in %1.
|
||||
GoTo End
|
||||
:NoArchive
|
||||
echo FAIL: the file %1 does not seem to exist.
|
||||
echo Remember that %1 cannot use forward slashes, only backslashes.
|
||||
GoTo End
|
||||
:End
|
||||
set GDBVER=
|
|
@ -1,3 +1,35 @@
|
|||
Tue May 30 16:53:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* floatformat.h (struct floatformat): Add field name.
|
||||
|
||||
2000-05-26 Eli Zaretskii <eliz@is.elta.co.il>
|
||||
|
||||
* filenames.h: New file.
|
||||
(HAVE_DOS_BASED_FILE_SYSTEM, IS_DIR_SEPARATOR)
|
||||
(IS_ABSOLUTE_PATH, FILENAME_CMP): New macros.
|
||||
|
||||
2000-05-17 S. Bharadwaj Yadavalli <sby@scrugs.lkg.dec.com>
|
||||
Rick Gorton <gorton@scrugs.lkg.dec.com>
|
||||
|
||||
* bfdlink.h (struct bfd_link_info): Add emitrelocations flag.
|
||||
|
||||
2000-05-08 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* dis-asm.h (print_insn_tic54x): Declare.
|
||||
|
||||
Fri May 5 16:51:03 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||||
|
||||
* coff/rs6k64.h (U802TOC64MAGIC): Change to U803XTOCMAGIC.
|
||||
|
||||
Mon Apr 24 15:20:51 2000 Clinton Popetz <cpopetz@cygnus.com>
|
||||
|
||||
* include/coff/rs6k64.h: New file.
|
||||
|
||||
Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
|
||||
David Mosberger <davidm@hpl.hp.com>
|
||||
|
||||
* dis-asm.h (print_insn_ia64): Declare.
|
||||
|
||||
2000-04-05 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* splay-tree.h (splay_tree_remove): Declare.
|
||||
|
@ -252,7 +284,7 @@ Mon Feb 1 21:05:46 1999 Catherine Moore <clm@cygnus.com>
|
|||
* dis-asm.h (print_insn_i386_att): Declare.
|
||||
(print_insn_i386_intel): Declare.
|
||||
|
||||
998-12-30 Michael Meissner <meissner@cygnus.com>
|
||||
1998-12-30 Michael Meissner <meissner@cygnus.com>
|
||||
|
||||
* dis-asm.h (INIT_DISASSEMBLE_INFO_NO_ARCH): Cast STREAM and
|
||||
FPRINTF_FUNC to avoid compiler warnings.
|
||||
|
@ -282,8 +314,7 @@ Tue Dec 8 00:30:31 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
|||
(demangling_styles): add new edg_demangling style
|
||||
(EDG_DEMANGLING_STYLE_STRING): new macro
|
||||
(EDG_DEMANGLING): new macro
|
||||
|
||||
* demangle.h (DMGL_HP): new macro, for HP/aCC compiler.
|
||||
(DMGL_HP): new macro, for HP/aCC compiler.
|
||||
(DMGL_STYLE_MASK): modify to include new HP's style.
|
||||
(demangling_styles): add new hp_demangling value.
|
||||
(HP_DEMANGLING_STYLE_STRING): new macro.
|
||||
|
|
|
@ -179,6 +179,8 @@ struct bfd_link_info
|
|||
const struct bfd_link_callbacks *callbacks;
|
||||
/* true if BFD should generate a relocateable object file. */
|
||||
boolean relocateable;
|
||||
/* true if BFD should generate relocation information in the final executable. */
|
||||
boolean emitrelocations;
|
||||
/* true if BFD should generate a "task linked" object file,
|
||||
similar to relocatable but also with globals converted to statics. */
|
||||
boolean task_link;
|
||||
|
|
|
@ -1,3 +1,36 @@
|
|||
2000-04-17 Timothy Wall <twall@cygnus.com>
|
||||
|
||||
* ti.h: Load page cleanup.
|
||||
* intental.h: Add load page field.
|
||||
|
||||
Mon Apr 17 16:44:01 2000 David Mosberger <davidm@hpl.hp.com>
|
||||
|
||||
* pe.h (PEP64AOUTHDR): New header for PE+.
|
||||
(PEP64AOUTSZ): New macro.
|
||||
(IMAGE_SUBSYSTEM_UNKNOWN): New macro.
|
||||
(IMAGE_SUBSYSTEM_NATIVE): Ditto.
|
||||
(IMAGE_SUBSYSTEM_WINDOWS_GUI): Ditto.
|
||||
(IMAGE_SUBSYSTEM_WINDOWS_CUI): Ditto.
|
||||
(IMAGE_SUBSYSTEM_POSIX_CUI): Ditto.
|
||||
(IMAGE_SUBSYSTEM_WINDOWS_CE_GUI): Ditto.
|
||||
(IMAGE_SUBSYSTEM_EFI_APPLICATION): Ditto.
|
||||
(IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER): Ditto.
|
||||
(IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER): Ditto.
|
||||
* internal.h (PE_DEF_FILE_ALIGNMENT): Define only if not defined
|
||||
already.
|
||||
* ia64.h: New file.
|
||||
|
||||
2000-04-13 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* ti.h (ADDR_MASK): Don't use ul suffix on constants.
|
||||
(PG_MASK): Ditto.
|
||||
|
||||
2000-04-11 Timothy Wall <twall@cygnus.com>
|
||||
|
||||
* ti.h: Remove load page references until load pages are
|
||||
reimplemented.
|
||||
* tic54x.h: Ditto.
|
||||
|
||||
2000-04-07 Timothy Wall <twall@cygnus.com>
|
||||
|
||||
* internal.h: Fix some comments related to TI COFF (instead of tic80).
|
||||
|
|
|
@ -0,0 +1,222 @@
|
|||
/*** coff information for HP/Intel IA-64. */
|
||||
|
||||
|
||||
/********************** FILE HEADER **********************/
|
||||
|
||||
struct external_filehdr {
|
||||
char f_magic[2]; /* magic number */
|
||||
char f_nscns[2]; /* number of sections */
|
||||
char f_timdat[4]; /* time & date stamp */
|
||||
char f_symptr[4]; /* file pointer to symtab */
|
||||
char f_nsyms[4]; /* number of symtab entries */
|
||||
char f_opthdr[2]; /* sizeof(optional hdr) */
|
||||
char f_flags[2]; /* flags */
|
||||
};
|
||||
|
||||
#define IA64MAGIC 0x200
|
||||
|
||||
#define IA64BADMAG(x) (((x).f_magic != IA64MAGIC))
|
||||
|
||||
/* Bits for f_flags:
|
||||
* F_RELFLG relocation info stripped from file
|
||||
* F_EXEC file is executable (no unresolved external references)
|
||||
* F_LNNO line numbers stripped from file
|
||||
* F_LSYMS local symbols stripped from file
|
||||
* F_AR32WR file has byte ordering of an AR32WR machine (e.g. vax)
|
||||
*/
|
||||
|
||||
#define F_RELFLG (0x0001)
|
||||
#define F_EXEC (0x0002)
|
||||
#define F_LNNO (0x0004)
|
||||
#define F_LSYMS (0x0008)
|
||||
|
||||
|
||||
#define FILHDR struct external_filehdr
|
||||
#define FILHSZ 20
|
||||
|
||||
|
||||
/********************** AOUT "OPTIONAL HEADER" **********************/
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char magic[2]; /* type of file */
|
||||
char vstamp[2]; /* version stamp */
|
||||
char tsize[4]; /* text size in bytes, padded to FW bdry*/
|
||||
char dsize[4]; /* initialized data " " */
|
||||
char bsize[4]; /* uninitialized data " " */
|
||||
char entry[4]; /* entry pt. */
|
||||
char text_start[4]; /* base of text used for this file */
|
||||
#ifndef BFD64
|
||||
char data_start[4]; /* base of data used for this file */
|
||||
#endif
|
||||
}
|
||||
AOUTHDR;
|
||||
|
||||
#define PE32MAGIC 0x10b /* 32-bit image */
|
||||
#define PE32PMAGIC 0x20b /* 32-bit image inside 64-bit address space */
|
||||
|
||||
#define PE32PBADMAG(x) (((x).f_magic != PE32PMAGIC))
|
||||
|
||||
#define AOUTSZ 108
|
||||
#define AOUTHDRSZ 108
|
||||
|
||||
#define OMAGIC 0404 /* object files, eg as output */
|
||||
#define ZMAGIC 0413 /* demand load format, eg normal ld output */
|
||||
#define STMAGIC 0401 /* target shlib */
|
||||
#define SHMAGIC 0443 /* host shlib */
|
||||
|
||||
|
||||
/* define some NT default values */
|
||||
/* #define NT_IMAGE_BASE 0x400000 moved to internal.h */
|
||||
#define NT_SECTION_ALIGNMENT 0x1000
|
||||
#define NT_FILE_ALIGNMENT 0x200
|
||||
#define NT_DEF_RESERVE 0x100000
|
||||
#define NT_DEF_COMMIT 0x1000
|
||||
|
||||
/********************** SECTION HEADER **********************/
|
||||
|
||||
|
||||
struct external_scnhdr {
|
||||
char s_name[8]; /* section name */
|
||||
char s_paddr[4]; /* physical address, aliased s_nlib */
|
||||
char s_vaddr[4]; /* virtual address */
|
||||
char s_size[4]; /* section size */
|
||||
char s_scnptr[4]; /* file ptr to raw data for section */
|
||||
char s_relptr[4]; /* file ptr to relocation */
|
||||
char s_lnnoptr[4]; /* file ptr to line numbers */
|
||||
char s_nreloc[2]; /* number of relocation entries */
|
||||
char s_nlnno[2]; /* number of line number entries*/
|
||||
char s_flags[4]; /* flags */
|
||||
};
|
||||
|
||||
#define SCNHDR struct external_scnhdr
|
||||
#define SCNHSZ 40
|
||||
|
||||
/*
|
||||
* names of "special" sections
|
||||
*/
|
||||
#define _TEXT ".text"
|
||||
#define _DATA ".data"
|
||||
#define _BSS ".bss"
|
||||
#define _COMMENT ".comment"
|
||||
#define _LIB ".lib"
|
||||
|
||||
/********************** LINE NUMBERS **********************/
|
||||
|
||||
/* 1 line number entry for every "breakpointable" source line in a section.
|
||||
* Line numbers are grouped on a per function basis; first entry in a function
|
||||
* grouping will have l_lnno = 0 and in place of physical address will be the
|
||||
* symbol table index of the function name.
|
||||
*/
|
||||
struct external_lineno {
|
||||
union {
|
||||
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
|
||||
char l_paddr[4]; /* (physical) address of line number */
|
||||
} l_addr;
|
||||
char l_lnno[2]; /* line number */
|
||||
};
|
||||
|
||||
|
||||
#define LINENO struct external_lineno
|
||||
#define LINESZ 6
|
||||
|
||||
|
||||
/********************** SYMBOLS **********************/
|
||||
|
||||
#define E_SYMNMLEN 8 /* # characters in a symbol name */
|
||||
#define E_FILNMLEN 14 /* # characters in a file name */
|
||||
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
|
||||
|
||||
struct external_syment
|
||||
{
|
||||
union {
|
||||
char e_name[E_SYMNMLEN];
|
||||
struct {
|
||||
char e_zeroes[4];
|
||||
char e_offset[4];
|
||||
} e;
|
||||
} e;
|
||||
char e_value[4];
|
||||
char e_scnum[2];
|
||||
char e_type[2];
|
||||
char e_sclass[1];
|
||||
char e_numaux[1];
|
||||
};
|
||||
|
||||
#define N_BTMASK (0xf)
|
||||
#define N_TMASK (0x30)
|
||||
#define N_BTSHFT (4)
|
||||
#define N_TSHIFT (2)
|
||||
|
||||
union external_auxent {
|
||||
struct {
|
||||
char x_tagndx[4]; /* str, un, or enum tag indx */
|
||||
union {
|
||||
struct {
|
||||
char x_lnno[2]; /* declaration line number */
|
||||
char x_size[2]; /* str/union/array size */
|
||||
} x_lnsz;
|
||||
char x_fsize[4]; /* size of function */
|
||||
} x_misc;
|
||||
union {
|
||||
struct { /* if ISFCN, tag, or .bb */
|
||||
char x_lnnoptr[4]; /* ptr to fcn line # */
|
||||
char x_endndx[4]; /* entry ndx past block end */
|
||||
} x_fcn;
|
||||
struct { /* if ISARY, up to 4 dimen. */
|
||||
char x_dimen[E_DIMNUM][2];
|
||||
} x_ary;
|
||||
} x_fcnary;
|
||||
char x_tvndx[2]; /* tv index */
|
||||
} x_sym;
|
||||
|
||||
union {
|
||||
char x_fname[E_FILNMLEN];
|
||||
struct {
|
||||
char x_zeroes[4];
|
||||
char x_offset[4];
|
||||
} x_n;
|
||||
} x_file;
|
||||
|
||||
struct {
|
||||
char x_scnlen[4]; /* section length */
|
||||
char x_nreloc[2]; /* # relocation entries */
|
||||
char x_nlinno[2]; /* # line numbers */
|
||||
char x_checksum[4]; /* section COMDAT checksum */
|
||||
char x_associated[2]; /* COMDAT associated section index */
|
||||
char x_comdat[1]; /* COMDAT selection number */
|
||||
} x_scn;
|
||||
|
||||
struct {
|
||||
char x_tvfill[4]; /* tv fill value */
|
||||
char x_tvlen[2]; /* length of .tv */
|
||||
char x_tvran[2][2]; /* tv range */
|
||||
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define SYMENT struct external_syment
|
||||
#define SYMESZ 18
|
||||
#define AUXENT union external_auxent
|
||||
#define AUXESZ 18
|
||||
|
||||
|
||||
# define _ETEXT "etext"
|
||||
|
||||
|
||||
/********************** RELOCATION DIRECTIVES **********************/
|
||||
|
||||
|
||||
|
||||
struct external_reloc {
|
||||
char r_vaddr[4];
|
||||
char r_symndx[4];
|
||||
char r_type[2];
|
||||
};
|
||||
|
||||
|
||||
#define RELOC struct external_reloc
|
||||
#define RELSZ 10
|
||||
|
|
@ -100,7 +100,9 @@ typedef struct _IMAGE_DATA_DIRECTORY
|
|||
/* Extra stuff in a PE aouthdr */
|
||||
|
||||
#define PE_DEF_SECTION_ALIGNMENT 0x1000
|
||||
#define PE_DEF_FILE_ALIGNMENT 0x200
|
||||
#ifndef PE_DEF_FILE_ALIGNMENT
|
||||
# define PE_DEF_FILE_ALIGNMENT 0x200
|
||||
#endif
|
||||
|
||||
struct internal_extra_pe_aouthdr
|
||||
{
|
||||
|
@ -301,6 +303,7 @@ struct internal_scnhdr
|
|||
unsigned long s_nlnno; /* number of line number entries*/
|
||||
long s_flags; /* flags */
|
||||
long s_align; /* used on I960 */
|
||||
unsigned char s_page; /* TI COFF load page */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -89,12 +89,22 @@
|
|||
#define IMAGE_FILE_MACHINE_SH4 0x1a6
|
||||
#define IMAGE_FILE_MACHINE_THUMB 0x1c2
|
||||
|
||||
#define IMAGE_SUBSYSTEM_UNKNOWN 0
|
||||
#define IMAGE_SUBSYSTEM_NATIVE 1
|
||||
#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2
|
||||
#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3
|
||||
#define IMAGE_SUBSYSTEM_POSIX_CUI 7
|
||||
#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9
|
||||
#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10
|
||||
#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
|
||||
#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12
|
||||
|
||||
/* Magic values that are true for all dos/nt implementations */
|
||||
#define DOSMAGIC 0x5a4d
|
||||
#define NT_SIGNATURE 0x00004550
|
||||
|
||||
/* NT allows long filenames, we want to accommodate this. This may break
|
||||
some of the bfd functions */
|
||||
/* NT allows long filenames, we want to accommodate this. This may break
|
||||
some of the bfd functions */
|
||||
#undef FILNMLEN
|
||||
#define FILNMLEN 18 /* # characters in a file name */
|
||||
|
||||
|
@ -132,7 +142,6 @@ struct external_PEI_filehdr
|
|||
char f_nsyms[4]; /* number of symtab entries */
|
||||
char f_opthdr[2]; /* sizeof(optional hdr) */
|
||||
char f_flags[2]; /* flags */
|
||||
|
||||
};
|
||||
|
||||
#ifdef COFF_IMAGE_WITH_PE
|
||||
|
@ -146,6 +155,8 @@ struct external_PEI_filehdr
|
|||
|
||||
#endif /* COFF_IMAGE_WITH_PE */
|
||||
|
||||
/* 32-bit PE a.out header: */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
AOUTHDR standard;
|
||||
|
@ -174,13 +185,44 @@ typedef struct
|
|||
char NumberOfRvaAndSizes[4];
|
||||
/* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */
|
||||
char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars */
|
||||
|
||||
} PEAOUTHDR;
|
||||
|
||||
|
||||
#undef AOUTSZ
|
||||
#define AOUTSZ (AOUTHDRSZ + 196)
|
||||
|
||||
/* Like PEAOUTHDR, except that the "standard" member has no BaseOfData
|
||||
(aka data_start) member and that some of the members are 8 instead
|
||||
of just 4 bytes long. */
|
||||
typedef struct
|
||||
{
|
||||
AOUTHDR standard;
|
||||
|
||||
/* NT extra fields; see internal.h for descriptions */
|
||||
char ImageBase[8];
|
||||
char SectionAlignment[4];
|
||||
char FileAlignment[4];
|
||||
char MajorOperatingSystemVersion[2];
|
||||
char MinorOperatingSystemVersion[2];
|
||||
char MajorImageVersion[2];
|
||||
char MinorImageVersion[2];
|
||||
char MajorSubsystemVersion[2];
|
||||
char MinorSubsystemVersion[2];
|
||||
char Reserved1[4];
|
||||
char SizeOfImage[4];
|
||||
char SizeOfHeaders[4];
|
||||
char CheckSum[4];
|
||||
char Subsystem[2];
|
||||
char DllCharacteristics[2];
|
||||
char SizeOfStackReserve[8];
|
||||
char SizeOfStackCommit[8];
|
||||
char SizeOfHeapReserve[8];
|
||||
char SizeOfHeapCommit[8];
|
||||
char LoaderFlags[4];
|
||||
char NumberOfRvaAndSizes[4];
|
||||
/* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */
|
||||
char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars */
|
||||
} PEP64AOUTHDR;
|
||||
#define PEP64AOUTSZ 240
|
||||
|
||||
#undef E_FILNMLEN
|
||||
#define E_FILNMLEN 18 /* # characters in a file name */
|
||||
|
||||
|
|
|
@ -0,0 +1,236 @@
|
|||
/* IBM RS/6000 "XCOFF64" file definitions for BFD.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc. */
|
||||
|
||||
/********************** FILE HEADER **********************/
|
||||
|
||||
struct external_filehdr {
|
||||
char f_magic[2]; /* magic number */
|
||||
char f_nscns[2]; /* number of sections */
|
||||
char f_timdat[4]; /* time & date stamp */
|
||||
char f_symptr[8];/* file pointer to symtab */
|
||||
char f_opthdr[2]; /* sizeof(optional hdr) */
|
||||
char f_flags[2]; /* flags */
|
||||
char f_nsyms[4]; /* number of symtab entries */
|
||||
};
|
||||
|
||||
/* IBM RS/6000 */
|
||||
#define U803XTOCMAGIC 0757 /* readonly text segments and TOC, XCOFF64 */
|
||||
|
||||
#define BADMAG(x) ((x).f_magic != U803XTOCMAGIC)
|
||||
|
||||
#define FILHDR struct external_filehdr
|
||||
#define FILHSZ 24
|
||||
|
||||
/********************** AOUT "OPTIONAL HEADER" **********************/
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char magic[2]; /* type of file */
|
||||
unsigned char vstamp[2]; /* version stamp */
|
||||
unsigned char o_debugger[4]; /* reserved */
|
||||
unsigned char text_start[8]; /* base of text used for this file */
|
||||
unsigned char data_start[8]; /* base of data used for this file */
|
||||
unsigned char o_toc[8]; /* address of TOC */
|
||||
unsigned char o_snentry[2]; /* section number of entry point */
|
||||
unsigned char o_sntext[2]; /* section number of .text section */
|
||||
unsigned char o_sndata[2]; /* section number of .data section */
|
||||
unsigned char o_sntoc[2]; /* section number of TOC */
|
||||
unsigned char o_snloader[2]; /* section number of .loader section */
|
||||
unsigned char o_snbss[2]; /* section number of .bss section */
|
||||
unsigned char o_algntext[2]; /* .text alignment */
|
||||
unsigned char o_algndata[2]; /* .data alignment */
|
||||
unsigned char o_modtype[2]; /* module type (??) */
|
||||
unsigned char o_cputype[2]; /* cpu type */
|
||||
unsigned char o_resv2[4]; /* reserved */
|
||||
unsigned char tsize[8]; /* text size bytes, padded to FW bdry */
|
||||
unsigned char dsize[8]; /* initialized data " " */
|
||||
unsigned char bsize[8]; /* uninitialized data " " */
|
||||
unsigned char entry[8]; /* entry pt. */
|
||||
unsigned char o_maxstack[8]; /* max stack size (??) */
|
||||
unsigned char o_maxdata[8]; /* max data size (??) */
|
||||
unsigned char o_resv3[16]; /* reserved */
|
||||
}
|
||||
AOUTHDR;
|
||||
|
||||
#define AOUTSZ 120
|
||||
#define SMALL_AOUTSZ (0)
|
||||
#define AOUTHDRSZ 72
|
||||
|
||||
#define RS6K_AOUTHDR_OMAGIC 0x0107 /* old: text & data writeable */
|
||||
#define RS6K_AOUTHDR_NMAGIC 0x0108 /* new: text r/o, data r/w */
|
||||
#define RS6K_AOUTHDR_ZMAGIC 0x010B /* paged: text r/o, both page-aligned */
|
||||
|
||||
|
||||
/********************** SECTION HEADER **********************/
|
||||
|
||||
|
||||
struct external_scnhdr {
|
||||
char s_name[8]; /* section name */
|
||||
char s_paddr[8]; /* physical address, aliased s_nlib */
|
||||
char s_vaddr[8]; /* virtual address */
|
||||
char s_size[8]; /* section size */
|
||||
char s_scnptr[8]; /* file ptr to raw data for section */
|
||||
char s_relptr[8]; /* file ptr to relocation */
|
||||
char s_lnnoptr[8]; /* file ptr to line numbers */
|
||||
char s_nreloc[4]; /* number of relocation entries */
|
||||
char s_nlnno[4]; /* number of line number entries*/
|
||||
char s_flags[4]; /* flags */
|
||||
char s_pad[4]; /* padding */
|
||||
};
|
||||
|
||||
/*
|
||||
* names of "special" sections
|
||||
*/
|
||||
#define _TEXT ".text"
|
||||
#define _DATA ".data"
|
||||
#define _BSS ".bss"
|
||||
#define _PAD ".pad"
|
||||
#define _LOADER ".loader"
|
||||
|
||||
#define SCNHDR struct external_scnhdr
|
||||
|
||||
#define SCNHSZ 72
|
||||
|
||||
/* XCOFF uses a special .loader section with type STYP_LOADER. */
|
||||
#define STYP_LOADER 0x1000
|
||||
|
||||
/* XCOFF uses a special .debug section with type STYP_DEBUG. */
|
||||
#define STYP_DEBUG 0x2000
|
||||
|
||||
/* XCOFF handles line number or relocation overflow by creating
|
||||
another section header with STYP_OVRFLO set. */
|
||||
#define STYP_OVRFLO 0x8000
|
||||
|
||||
/********************** LINE NUMBERS **********************/
|
||||
|
||||
/* 1 line number entry for every "breakpointable" source line in a section.
|
||||
* Line numbers are grouped on a per function basis; first entry in a function
|
||||
* grouping will have l_lnno = 0 and in place of physical address will be the
|
||||
* symbol table index of the function name.
|
||||
*/
|
||||
struct external_lineno {
|
||||
union {
|
||||
char l_symndx[8];/* function name symbol index, iff l_lnno == 0*/
|
||||
char l_paddr[8]; /* (physical) address of line number */
|
||||
} l_addr;
|
||||
char l_lnno[4]; /* line number */
|
||||
};
|
||||
|
||||
|
||||
#define LINENO struct external_lineno
|
||||
|
||||
#define LINESZ 12
|
||||
|
||||
|
||||
/********************** SYMBOLS **********************/
|
||||
|
||||
#define E_SYMNMLEN 8 /* # characters in a symbol name */
|
||||
#define E_FILNMLEN 14 /* # characters in a file name */
|
||||
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
|
||||
|
||||
struct external_syment
|
||||
{
|
||||
union {
|
||||
char e_value[8];
|
||||
} e;
|
||||
char e_offset[4];
|
||||
char e_scnum[2];
|
||||
char e_type[2];
|
||||
char e_sclass[1];
|
||||
char e_numaux[1];
|
||||
};
|
||||
|
||||
|
||||
|
||||
#define N_BTMASK (017)
|
||||
#define N_TMASK (060)
|
||||
#define N_BTSHFT (4)
|
||||
#define N_TSHIFT (2)
|
||||
|
||||
|
||||
union external_auxent {
|
||||
|
||||
struct {
|
||||
union {
|
||||
struct {
|
||||
char x_lnno[4]; /* declaration line number */
|
||||
char x_size[2]; /* str/union/array size */
|
||||
} x_lnsz;
|
||||
struct {
|
||||
char x_lnnoptr[8];/* ptr to fcn line */
|
||||
char x_fsize[4]; /* size of function */
|
||||
char x_endndx[4]; /* entry ndx past block end */
|
||||
} x_fcn;
|
||||
} x_fcnary;
|
||||
} x_sym;
|
||||
|
||||
union {
|
||||
char x_fname[E_FILNMLEN];
|
||||
struct {
|
||||
char x_zeroes[4];
|
||||
char x_offset[4];
|
||||
char x_pad[6];
|
||||
unsigned char x_ftype[1];
|
||||
unsigned char x_resv[2];
|
||||
} x_n;
|
||||
} x_file;
|
||||
|
||||
struct {
|
||||
char x_exptr[8];
|
||||
char x_fsize[4];
|
||||
char x_endndx[4];
|
||||
char x_pad[1];
|
||||
} x_except;
|
||||
|
||||
struct {
|
||||
unsigned char x_scnlen_lo[4];
|
||||
unsigned char x_parmhash[4];
|
||||
unsigned char x_snhash[2];
|
||||
unsigned char x_smtyp[1];
|
||||
unsigned char x_smclas[1];
|
||||
unsigned char x_scnlen_hi[4];
|
||||
unsigned char x_pad[1];
|
||||
} x_csect;
|
||||
|
||||
struct {
|
||||
char x_pad[17];
|
||||
char x_auxtype[1];
|
||||
} x_auxtype;
|
||||
};
|
||||
|
||||
#define SYMENT struct external_syment
|
||||
#define SYMESZ 18
|
||||
#define AUXENT union external_auxent
|
||||
#define AUXESZ 18
|
||||
#define DBXMASK 0x80 /* for dbx storage mask */
|
||||
#define SYMNAME_IN_DEBUG(symptr) ((symptr)->n_sclass & DBXMASK)
|
||||
|
||||
/* Values for auxtype field in XCOFF64, taken from AIX 4.3 sym.h */
|
||||
#define _AUX_EXCEPT 255
|
||||
#define _AUX_FCN 254
|
||||
#define _AUX_SYM 253
|
||||
#define _AUX_FILE 252
|
||||
#define _AUX_CSECT 251
|
||||
|
||||
|
||||
|
||||
/********************** RELOCATION DIRECTIVES **********************/
|
||||
|
||||
|
||||
struct external_reloc {
|
||||
char r_vaddr[8];
|
||||
char r_symndx[4];
|
||||
char r_size[1];
|
||||
char r_type[1];
|
||||
};
|
||||
|
||||
|
||||
#define RELOC struct external_reloc
|
||||
#define RELSZ 14
|
||||
|
||||
#define DEFAULT_DATA_SECTION_ALIGNMENT 4
|
||||
#define DEFAULT_BSS_SECTION_ALIGNMENT 4
|
||||
#define DEFAULT_TEXT_SECTION_ALIGNMENT 4
|
||||
/* For new sections we havn't heard of before */
|
||||
#define DEFAULT_SECTION_ALIGNMENT 4
|
|
@ -75,7 +75,6 @@ struct external_filehdr {
|
|||
#define COFF_ADJUST_FILEHDR_IN_POST(abfd,src,dst) \
|
||||
do { ((struct internal_filehdr *)(dst))->f_target_id = \
|
||||
bfd_h_get_16(abfd, (bfd_byte *)(((FILHDR *)(src))->f_target_id)); \
|
||||
((struct internal_filehdr *)(dst))->f_flags |= F_LDPAGE; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
|
@ -160,9 +159,6 @@ struct external_scnhdr {
|
|||
/*
|
||||
* Special section flags
|
||||
*/
|
||||
/* recognized load pages */
|
||||
#define PG_PROG 0x0 /* PROG page */
|
||||
#define PG_DATA 0x1 /* DATA page */
|
||||
|
||||
/* TI COFF defines these flags;
|
||||
STYP_CLINK: the section should be excluded from the final
|
||||
|
@ -233,25 +229,26 @@ PUT_SCNHDR_PAGE(ABFD,((struct internal_scnhdr *)(INT))->s_page, \
|
|||
(bfd_byte *)((SCNHDR *)(EXT))->s_page); \
|
||||
} while(0)
|
||||
|
||||
/* page macros
|
||||
/* Page macros
|
||||
|
||||
the first GDB port requires flags in its remote memory access commands to
|
||||
distinguish between data/prog space. hopefully we can make this go away
|
||||
eventually. stuff the page in the upper bits of a 32-bit address, since
|
||||
The first GDB port requires flags in its remote memory access commands to
|
||||
distinguish between data/prog space. Hopefully we can make this go away
|
||||
eventually. Stuff the page in the upper bits of a 32-bit address, since
|
||||
the c5x family only uses 16 or 23 bits.
|
||||
|
||||
c2x, c5x and most c54x devices have 16-bit addresses, but the c548 has
|
||||
23-bit program addresses. make sure the page flags don't interfere
|
||||
23-bit program addresses. Make sure the page flags don't interfere.
|
||||
These flags are used by GDB to identify the destination page for
|
||||
addresses.
|
||||
*/
|
||||
|
||||
#define LONG_ADDRESSES 1
|
||||
#define PG_SHIFT (LONG_ADDRESSES ? 30 : 16)
|
||||
#define ADDR_MASK ((1ul<<PG_SHIFT)-1)/* 16 or 24-bit addresses */
|
||||
#define PG_MASK (3ul<<PG_SHIFT)
|
||||
#define PG_TO_FLAG(p) ((p)<<PG_SHIFT)
|
||||
#define FLAG_TO_PG(f) (((f)&PG_MASK)>>PG_SHIFT)
|
||||
/* recognized load pages */
|
||||
#define PG_PROG 0x0 /* PROG page */
|
||||
#define PG_DATA 0x1 /* DATA page */
|
||||
|
||||
#define ADDR_MASK 0x00FFFFFF
|
||||
#define PG_TO_FLAG(p) (((unsigned long)(p) & 0xFF) << 24)
|
||||
#define FLAG_TO_PG(f) (((f) >> 24) & 0xFF)
|
||||
|
||||
/*
|
||||
* names of "special" sections
|
||||
|
|
|
@ -157,6 +157,7 @@ extern int print_insn_big_mips PARAMS ((bfd_vma, disassemble_info*));
|
|||
extern int print_insn_little_mips PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_i386_att PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_i386_intel PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_ia64 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_i370 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_m68k PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_z8001 PARAMS ((bfd_vma, disassemble_info*));
|
||||
|
@ -192,6 +193,7 @@ extern int print_insn_d30v PARAMS ((bfd_vma, disassemble_info*));
|
|||
extern int print_insn_v850 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_tic30 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_vax PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_tic54x PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_tic80 PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_pj PARAMS ((bfd_vma, disassemble_info*));
|
||||
extern int print_insn_avr PARAMS ((bfd_vma, disassemble_info*));
|
||||
|
|
|
@ -1,3 +1,39 @@
|
|||
2000-06-03 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* reloc-macros.h (START_RELOC_NUMBERS): Fix name clash for
|
||||
!__STDC__ case.
|
||||
(RELOC_NUMBER): Use ansi stringify if ALMOST_STDC defined.
|
||||
|
||||
2000-05-22 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* ia64.h (R_IA64_PCREL60B, R_IA64_PCREL21BI): New.
|
||||
(R_IA64_PCREL22, R_IA64_PCREL64I): New.
|
||||
|
||||
2000-05-02 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* common.h (ELFOSABI_NONE): Renamed from ELFOSABI_SYSV.
|
||||
(ELFOSABI_MODESTO): Defined.
|
||||
(ELFOSABI_OPENBSD): Likewise.
|
||||
|
||||
Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
|
||||
David Mosberger <davidm@hpl.hp.com>
|
||||
|
||||
* ia64.h: New file.
|
||||
|
||||
2000-04-14 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* common.h (ELFOSABI_TRUE64): Renamed to ELFOSABI_TRU64.
|
||||
|
||||
2000-04-14 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* common.h (ELFOSABI_NETBSD): Defined.
|
||||
(ELFOSABI_HURD): Likewise.
|
||||
(ELFOSABI_SOLARIS): Likewise.
|
||||
(ELFOSABI_MONTEREY): Likewise.
|
||||
(ELFOSABI_IRIX): Likewise.
|
||||
(ELFOSABI_FREEBSD): Likewise.
|
||||
(ELFOSABI_TRUE64): Likewise.
|
||||
|
||||
2000-04-07 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* arm-oabi.h: Delete.
|
||||
|
|
|
@ -58,9 +58,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#define EI_VERSION 6 /* File version */
|
||||
|
||||
#define EI_OSABI 7 /* Operating System/ABI indication */
|
||||
#define ELFOSABI_SYSV 0 /* UNIX System V ABI */
|
||||
#define ELFOSABI_NONE 0 /* UNIX System V ABI */
|
||||
#define ELFOSABI_HPUX 1 /* HP-UX operating system */
|
||||
#define ELFOSABI_NETBSD 2 /* NetBSD */
|
||||
#define ELFOSABI_LINUX 3 /* GNU/Linux */
|
||||
#define ELFOSABI_HURD 4 /* GNU/Hurd */
|
||||
#define ELFOSABI_SOLARIS 6 /* Solaris */
|
||||
#define ELFOSABI_MONTEREY 7 /* Monterey */
|
||||
#define ELFOSABI_IRIX 8 /* IRIX */
|
||||
#define ELFOSABI_FREEBSD 9 /* FreeBSD */
|
||||
#define ELFOSABI_TRU64 10 /* TRU64 UNIX */
|
||||
#define ELFOSABI_MODESTO 11 /* Novell Modesto */
|
||||
#define ELFOSABI_OPENBSD 12 /* OpenBSD */
|
||||
#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
|
||||
#define ELFOSABI_ARM 97 /* ARM */
|
||||
|
||||
|
|
|
@ -0,0 +1,172 @@
|
|||
/* IA-64 ELF support for BFD.
|
||||
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
#ifndef _ELF_IA64_H
|
||||
#define _ELF_IA64_H
|
||||
|
||||
/* Bits in the e_flags field of the Elf64_Ehdr: */
|
||||
|
||||
#define EF_IA_64_MASKOS 0x0000000f /* os-specific flags */
|
||||
#define EF_IA_64_ABI64 (1 << 4) /* 64-bit ABI */
|
||||
#define EF_IA_64_ARCH 0xff000000 /* arch. version mask */
|
||||
|
||||
/* ??? These four definitions are not part of the SVR4 ABI.
|
||||
They were present in David's initial code drop, so it is probable
|
||||
that they are used by HP/UX. */
|
||||
#define EF_IA_64_TRAPNIL (1 << 0) /* trap NIL pointer dereferences */
|
||||
#define EF_IA_64_EXT (1 << 2) /* program uses arch. extensions */
|
||||
#define EF_IA_64_BE (1 << 3) /* PSR BE bit set (big-endian) */
|
||||
#define EFA_IA_64_EAS2_3 0x23000000 /* ia64 EAS 2.3 */
|
||||
|
||||
#define ELF_STRING_ia64_archext ".IA_64.archext"
|
||||
#define ELF_STRING_ia64_pltoff ".IA_64.pltoff"
|
||||
#define ELF_STRING_ia64_unwind ".IA_64.unwind"
|
||||
#define ELF_STRING_ia64_unwind_info ".IA_64.unwind_info"
|
||||
|
||||
/* Bits in the sh_flags field of Elf64_Shdr: */
|
||||
|
||||
#define SHF_IA_64_SHORT 0x10000000 /* section near gp */
|
||||
#define SHF_IA_64_NORECOV 0x20000000 /* spec insns w/o recovery */
|
||||
|
||||
/* Possible values for sh_type in Elf64_Shdr: */
|
||||
|
||||
#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */
|
||||
#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */
|
||||
|
||||
/* Bits in the p_flags field of Elf64_Phdr: */
|
||||
|
||||
#define PF_IA_64_NORECOV 0x80000000
|
||||
|
||||
/* Possible values for p_type in Elf64_Phdr: */
|
||||
|
||||
#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */
|
||||
#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */
|
||||
|
||||
/* Possible values for d_tag in Elf64_Dyn: */
|
||||
|
||||
#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
|
||||
|
||||
/* ia64-specific relocation types: */
|
||||
|
||||
/* Relocs apply to specific instructions within a bundle. The least
|
||||
significant 2 bits of the address indicate which instruction in the
|
||||
bundle the reloc refers to (0=first slot, 1=second slow, 2=third
|
||||
slot, 3=undefined) and the remaining bits give the address of the
|
||||
bundle (16 byte aligned).
|
||||
|
||||
The top 5 bits of the reloc code specifies the expression type, the
|
||||
low 3 bits the format of the data word being relocated.
|
||||
|
||||
??? Relocations below marked ## are not part of the SVR4 processor
|
||||
suppliment. They were present in David's initial code drop, so it
|
||||
is possible that they are used by HP/UX. */
|
||||
|
||||
#include "elf/reloc-macros.h"
|
||||
|
||||
START_RELOC_NUMBERS (elf_ia64_reloc_type)
|
||||
RELOC_NUMBER (R_IA64_NONE, 0x00) /* none */
|
||||
|
||||
RELOC_NUMBER (R_IA64_IMM14, 0x21) /* symbol + addend, add imm14 */
|
||||
RELOC_NUMBER (R_IA64_IMM22, 0x22) /* symbol + addend, add imm22 */
|
||||
RELOC_NUMBER (R_IA64_IMM64, 0x23) /* symbol + addend, mov imm64 */
|
||||
RELOC_NUMBER (R_IA64_DIR32MSB, 0x24) /* symbol + addend, data4 MSB */
|
||||
RELOC_NUMBER (R_IA64_DIR32LSB, 0x25) /* symbol + addend, data4 LSB */
|
||||
RELOC_NUMBER (R_IA64_DIR64MSB, 0x26) /* symbol + addend, data8 MSB */
|
||||
RELOC_NUMBER (R_IA64_DIR64LSB, 0x27) /* symbol + addend, data8 LSB */
|
||||
|
||||
RELOC_NUMBER (R_IA64_GPREL22, 0x2a) /* @gprel(sym + add), add imm22 */
|
||||
RELOC_NUMBER (R_IA64_GPREL64I, 0x2b) /* @gprel(sym + add), mov imm64 */
|
||||
RELOC_NUMBER (R_IA64_GPREL32MSB, 0x2c) /* @gprel(sym + add), data4 MSB ## */
|
||||
RELOC_NUMBER (R_IA64_GPREL32LSB, 0x2d) /* @gprel(sym + add), data4 LSB ## */
|
||||
RELOC_NUMBER (R_IA64_GPREL64MSB, 0x2e) /* @gprel(sym + add), data8 MSB */
|
||||
RELOC_NUMBER (R_IA64_GPREL64LSB, 0x2f) /* @gprel(sym + add), data8 LSB */
|
||||
|
||||
RELOC_NUMBER (R_IA64_LTOFF22, 0x32) /* @ltoff(sym + add), add imm22 */
|
||||
RELOC_NUMBER (R_IA64_LTOFF64I, 0x33) /* @ltoff(sym + add), mov imm64 */
|
||||
|
||||
RELOC_NUMBER (R_IA64_PLTOFF22, 0x3a) /* @pltoff(sym + add), add imm22 */
|
||||
RELOC_NUMBER (R_IA64_PLTOFF64I, 0x3b) /* @pltoff(sym + add), mov imm64 */
|
||||
RELOC_NUMBER (R_IA64_PLTOFF64MSB, 0x3e) /* @pltoff(sym + add), data8 MSB */
|
||||
RELOC_NUMBER (R_IA64_PLTOFF64LSB, 0x3f) /* @pltoff(sym + add), data8 LSB */
|
||||
|
||||
RELOC_NUMBER (R_IA64_FPTR64I, 0x43) /* @fptr(sym + add), mov imm64 */
|
||||
RELOC_NUMBER (R_IA64_FPTR32MSB, 0x44) /* @fptr(sym + add), data4 MSB */
|
||||
RELOC_NUMBER (R_IA64_FPTR32LSB, 0x45) /* @fptr(sym + add), data4 LSB */
|
||||
RELOC_NUMBER (R_IA64_FPTR64MSB, 0x46) /* @fptr(sym + add), data8 MSB */
|
||||
RELOC_NUMBER (R_IA64_FPTR64LSB, 0x47) /* @fptr(sym + add), data8 LSB */
|
||||
|
||||
RELOC_NUMBER (R_IA64_PCREL60B, 0x48) /* @pcrel(sym + add), brl */
|
||||
RELOC_NUMBER (R_IA64_PCREL21B, 0x49) /* @pcrel(sym + add), ptb, call */
|
||||
RELOC_NUMBER (R_IA64_PCREL21M, 0x4a) /* @pcrel(sym + add), chk.s */
|
||||
RELOC_NUMBER (R_IA64_PCREL21F, 0x4b) /* @pcrel(sym + add), fchkf */
|
||||
RELOC_NUMBER (R_IA64_PCREL32MSB, 0x4c) /* @pcrel(sym + add), data4 MSB */
|
||||
RELOC_NUMBER (R_IA64_PCREL32LSB, 0x4d) /* @pcrel(sym + add), data4 LSB */
|
||||
RELOC_NUMBER (R_IA64_PCREL64MSB, 0x4e) /* @pcrel(sym + add), data8 MSB */
|
||||
RELOC_NUMBER (R_IA64_PCREL64LSB, 0x4f) /* @pcrel(sym + add), data8 LSB */
|
||||
|
||||
RELOC_NUMBER (R_IA64_LTOFF_FPTR22, 0x52) /* @ltoff(@fptr(s+a)), imm22 */
|
||||
RELOC_NUMBER (R_IA64_LTOFF_FPTR64I, 0x53) /* @ltoff(@fptr(s+a)), imm64 */
|
||||
RELOC_NUMBER (R_IA64_LTOFF_FPTR64MSB, 0x56) /* @ltoff(@fptr(s+a)), 8 MSB ##*/
|
||||
RELOC_NUMBER (R_IA64_LTOFF_FPTR64LSB, 0x57) /* @ltoff(@fptr(s+a)), 8 LSB ##*/
|
||||
|
||||
RELOC_NUMBER (R_IA64_SEGBASE, 0x58) /* set segment base for @segrel ## */
|
||||
RELOC_NUMBER (R_IA64_SEGREL32MSB, 0x5c) /* @segrel(sym + add), data4 MSB */
|
||||
RELOC_NUMBER (R_IA64_SEGREL32LSB, 0x5d) /* @segrel(sym + add), data4 LSB */
|
||||
RELOC_NUMBER (R_IA64_SEGREL64MSB, 0x5e) /* @segrel(sym + add), data8 MSB */
|
||||
RELOC_NUMBER (R_IA64_SEGREL64LSB, 0x5f) /* @segrel(sym + add), data8 LSB */
|
||||
|
||||
RELOC_NUMBER (R_IA64_SECREL32MSB, 0x64) /* @secrel(sym + add), data4 MSB */
|
||||
RELOC_NUMBER (R_IA64_SECREL32LSB, 0x65) /* @secrel(sym + add), data4 LSB */
|
||||
RELOC_NUMBER (R_IA64_SECREL64MSB, 0x66) /* @secrel(sym + add), data8 MSB */
|
||||
RELOC_NUMBER (R_IA64_SECREL64LSB, 0x67) /* @secrel(sym + add), data8 LSB */
|
||||
|
||||
RELOC_NUMBER (R_IA64_REL32MSB, 0x6c) /* data 4 + REL */
|
||||
RELOC_NUMBER (R_IA64_REL32LSB, 0x6d) /* data 4 + REL */
|
||||
RELOC_NUMBER (R_IA64_REL64MSB, 0x6e) /* data 8 + REL */
|
||||
RELOC_NUMBER (R_IA64_REL64LSB, 0x6f) /* data 8 + REL */
|
||||
|
||||
RELOC_NUMBER (R_IA64_LTV32MSB, 0x70) /* symbol + addend, data4 MSB */
|
||||
RELOC_NUMBER (R_IA64_LTV32LSB, 0x71) /* symbol + addend, data4 LSB */
|
||||
RELOC_NUMBER (R_IA64_LTV64MSB, 0x72) /* symbol + addend, data8 MSB */
|
||||
RELOC_NUMBER (R_IA64_LTV64LSB, 0x73) /* symbol + addend, data8 LSB */
|
||||
|
||||
RELOC_NUMBER (R_IA64_PCREL21BI, 0x79) /* @pcrel(sym + add), ptb, call */
|
||||
RELOC_NUMBER (R_IA64_PCREL22, 0x7a) /* @pcrel(sym + add), imm22 */
|
||||
RELOC_NUMBER (R_IA64_PCREL64I, 0x7b) /* @pcrel(sym + add), imm64 */
|
||||
|
||||
RELOC_NUMBER (R_IA64_IPLTMSB, 0x80) /* dynamic reloc, imported PLT, MSB */
|
||||
RELOC_NUMBER (R_IA64_IPLTLSB, 0x81) /* dynamic reloc, imported PLT, LSB */
|
||||
RELOC_NUMBER (R_IA64_EPLTMSB, 0x82) /* dynamic reloc, exported PLT, ## */
|
||||
RELOC_NUMBER (R_IA64_EPLTLSB, 0x83) /* dynamic reloc, exported PLT, ## */
|
||||
RELOC_NUMBER (R_IA64_COPY, 0x84) /* dynamic reloc, data copy ## */
|
||||
RELOC_NUMBER (R_IA64_LTOFF22X, 0x86) /* LTOFF22, relaxable. */
|
||||
RELOC_NUMBER (R_IA64_LDXMOV, 0x87) /* Use of LTOFF22X. */
|
||||
|
||||
RELOC_NUMBER (R_IA64_TPREL22, 0x92) /* sym-TP+add, add imm22 ## */
|
||||
RELOC_NUMBER (R_IA64_TPREL64MSB, 0x96) /* sym-TP+add, data8 MSB ## */
|
||||
RELOC_NUMBER (R_IA64_TPREL64LSB, 0x97) /* sym-TP+add, data8 LSB ## */
|
||||
|
||||
RELOC_NUMBER (R_IA64_LTOFF_TP22, 0x9a) /* @ltoff(sym-TP+add), add imm22 ## */
|
||||
|
||||
FAKE_RELOC (R_IA64_MAX_RELOC_CODE, 0x9a)
|
||||
END_RELOC_NUMBERS
|
||||
|
||||
#endif /* _ELF_IA64_H */
|
|
@ -1,5 +1,5 @@
|
|||
/* MIPS ELF support for BFD.
|
||||
Copyright (C) 1993, 1994, 1995, 1996, 1998 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993, 1994, 1995, 1996, 1998, 2000 Free Software Foundation, Inc.
|
||||
|
||||
By Ian Lance Taylor, Cygnus Support, <ian@cygnus.com>, from
|
||||
information in the System V Application Binary Interface, MIPS
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* MN10300 ELF support for BFD.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Generic relocation support for BFD.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
|
@ -59,7 +59,7 @@
|
|||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _RELOC_MACROS_H
|
||||
#define _RELOC_MACROS_H
|
||||
|
||||
|
@ -78,15 +78,15 @@ name (rtype) \
|
|||
switch (rtype) \
|
||||
{
|
||||
|
||||
#ifdef __STDC__
|
||||
#if defined (__STDC__) || defined (ALMOST_STDC)
|
||||
#define RELOC_NUMBER(name, number) case number : return #name ;
|
||||
#else
|
||||
#define RELOC_NUMBER(name, number) case number : return "name" ;
|
||||
#endif
|
||||
|
||||
#define FAKE_RELOC(name, number)
|
||||
#define FAKE_RELOC(name, number)
|
||||
#define EMPTY_RELOC(name)
|
||||
|
||||
|
||||
#define END_RELOC_NUMBERS \
|
||||
default: return NULL; \
|
||||
} \
|
||||
|
@ -100,15 +100,15 @@ name (rtype) \
|
|||
to -1 so that the first real entry will still default to 0). Further
|
||||
entries then prepend a comma to their definitions, creating a list
|
||||
of enumerator entries that will satisfy these compilers. */
|
||||
#ifdef __STDC__
|
||||
#if defined (__STDC__) || defined (ALMOST_STDC)
|
||||
#define START_RELOC_NUMBERS(name) enum name { _##name = -1
|
||||
#else
|
||||
#define START_RELOC_NUMBERS(name) enum name { name = -1
|
||||
#define START_RELOC_NUMBERS(name) enum name { _/**/name = -1
|
||||
#endif
|
||||
|
||||
|
||||
#define RELOC_NUMBER(name, number) , name = number
|
||||
#define FAKE_RELOC(name, number) , name = number
|
||||
#define EMPTY_RELOC(name) , name
|
||||
#define FAKE_RELOC(name, number) , name = number
|
||||
#define EMPTY_RELOC(name) , name
|
||||
#define END_RELOC_NUMBERS };
|
||||
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
/* Macros for taking apart, interpreting and processing file names.
|
||||
|
||||
These are here because some non-Posix (a.k.a. DOSish) systems have
|
||||
drive letter brain-damage at the beginning of an absolute file name,
|
||||
use forward- and back-slash in path names interchangeably, and
|
||||
some of them have case-insensitive file names.
|
||||
|
||||
Copyright 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef FILENAMES_H
|
||||
#define FILENAMES_H
|
||||
|
||||
#if defined(__MSDOS__) || defined(_WIN32) || defined(__OS2__)
|
||||
|
||||
#ifndef HAVE_DOS_BASED_FILE_SYSTEM
|
||||
#define HAVE_DOS_BASED_FILE_SYSTEM 1
|
||||
#endif
|
||||
|
||||
#define IS_DIR_SEPARATOR(c) ((c) == '/' || (c) == '\\')
|
||||
/* Note that IS_ABSOLUTE_PATH accepts d:foo as well, although it is
|
||||
only semi-absolute. This is because the users of IS_ABSOLUTE_PATH
|
||||
want to know whether to prepend the current working directory to
|
||||
a file name, which should not be done with a name like d:foo. */
|
||||
#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]) || (((f)[0]) && ((f)[1] == ':')))
|
||||
#define FILENAME_CMP(s1, s2) strcasecmp(s1, s2)
|
||||
|
||||
#else /* not DOSish */
|
||||
|
||||
#define IS_DIR_SEPARATOR(c) ((c) == '/')
|
||||
#define IS_ABSOLUTE_PATH(f) (IS_DIR_SEPARATOR((f)[0]))
|
||||
#define FILENAME_CMP(s1, s2) strcmp(s1, s2)
|
||||
|
||||
#endif /* not DOSish */
|
||||
|
||||
#endif /* FILENAMES_H */
|
|
@ -1,5 +1,5 @@
|
|||
/* IEEE floating point support declarations, for GDB, the GNU Debugger.
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 2000 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
|
@ -73,6 +73,9 @@ struct floatformat
|
|||
|
||||
/* Is the integer bit explicit or implicit? */
|
||||
enum floatformat_intbit intbit;
|
||||
|
||||
/* Internal name for debugging. */
|
||||
const char *name;
|
||||
};
|
||||
|
||||
/* floatformats for IEEE single and double, big and little endian. */
|
||||
|
|
|
@ -1,3 +1,64 @@
|
|||
Wed Apr 12 17:11:20 2000 Donald Lindsay <dlindsay@hound.cygnus.com>
|
||||
|
||||
* d10v.h: added ALONE attribute for d10v_opcode.exec_type.
|
||||
|
||||
2000-05-23 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
|
||||
|
||||
* i386.h: Allow d suffix on iret, and add DefaultSize modifier.
|
||||
|
||||
2000-05-17 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
|
||||
|
||||
* i386.h: Use sl_FP, not sl_Suf for fild.
|
||||
|
||||
2000-05-16 Frank Ch. Eigler <fche@redhat.com>
|
||||
|
||||
* cgen.h (CGEN_MAX_SYNTAX_BYTES): Increase to 32. Check that
|
||||
it exceeds CGEN_ACTUAL_MAX_SYNTAX_BYTES, if set.
|
||||
(CGEN_MAX_IFMT_OPERANDS): Increase to 16. Check that it exceeds
|
||||
CGEN_ACTUAL_MAX_IFMT_OPERANDS, if set.
|
||||
|
||||
2000-05-13 Alan Modra <alan@linuxcare.com.au>,
|
||||
|
||||
* i386.h (i386_optab): Cpu686 for sysenter,sysexit,fxsave,fxrestore.
|
||||
|
||||
2000-05-13 Alan Modra <alan@linuxcare.com.au>,
|
||||
Alexander Sokolov <robocop@netlink.ru>
|
||||
|
||||
* i386.h (i386_optab): Add cpu_flags for all instructions.
|
||||
|
||||
2000-05-13 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
From Gavin Romig-Koch <gavin@cygnus.com>
|
||||
* i386.h (wld_Suf): Define. Use on pushf, popf, pusha, popa.
|
||||
|
||||
2000-05-04 Timothy Wall <twall@cygnus.com>
|
||||
|
||||
* tic54x.h: New.
|
||||
|
||||
2000-05-03 J.T. Conklin <jtc@redback.com>
|
||||
|
||||
* ppc.h (PPC_OPCODE_ALTIVEC): New opcode flag for vector unit.
|
||||
(PPC_OPERAND_VR): New operand flag for vector registers.
|
||||
|
||||
2000-05-01 Kazu Hirata <kazu@hxi.com>
|
||||
|
||||
* h8300.h (EOP): Add missing initializer.
|
||||
|
||||
Fri Apr 21 15:03:37 2000 Jason Eckhardt <jle@cygnus.com>
|
||||
|
||||
* hppa.h (pa_opcodes): New opcodes for PA2.0 wide mode
|
||||
forms of ld/st{b,h,w,d} and fld/fst{w,d} (16-bit displacements).
|
||||
New operand types l,y,&,fe,fE,fx added to support above forms.
|
||||
(pa_opcodes): Replaced usage of 'x' as source/target for
|
||||
floating point double-word loads/stores with 'fx'.
|
||||
|
||||
Fri Apr 21 13:20:53 2000 Richard Henderson <rth@cygnus.com>
|
||||
David Mosberger <davidm@hpl.hp.com>
|
||||
Timothy Wall <twall@cygnus.com>
|
||||
Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* ia64.h: New file.
|
||||
|
||||
2000-03-27 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* d30v.h (SHORT_A1): Fix value.
|
||||
|
|
|
@ -735,9 +735,17 @@ typedef struct
|
|||
into the operand table. The operand table doesn't exist in C, per se, as
|
||||
the data is recorded in the parse/insert/extract/print switch statements. */
|
||||
|
||||
#ifndef CGEN_MAX_SYNTAX_BYTES
|
||||
#define CGEN_MAX_SYNTAX_BYTES 16
|
||||
/* This should be at least as large as necessary for any target. */
|
||||
#define CGEN_MAX_SYNTAX_BYTES 32
|
||||
|
||||
/* A target may know its own precise maximum. Assert that it falls below
|
||||
the above limit. */
|
||||
#ifdef CGEN_ACTUAL_MAX_SYNTAX_BYTES
|
||||
#if CGEN_ACTUAL_MAX_SYNTAX_BYTES > CGEN_MAX_SYNTAX_BYTES
|
||||
#error "CGEN_ACTUAL_MAX_SYNTAX_BYTES too high - enlarge CGEN_MAX_SYNTAX_BYTES"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
@ -824,9 +832,17 @@ typedef struct {
|
|||
#define CGEN_IFMT_IFLD_IFLD(ii) ((ii)->ifld)
|
||||
} CGEN_IFMT_IFLD;
|
||||
|
||||
#ifndef CGEN_MAX_IFMT_OPERANDS
|
||||
#define CGEN_MAX_IFMT_OPERANDS 1
|
||||
/* This should be at least as large as necessary for any target. */
|
||||
#define CGEN_MAX_IFMT_OPERANDS 16
|
||||
|
||||
/* A target may know its own precise maximum. Assert that it falls below
|
||||
the above limit. */
|
||||
#ifdef CGEN_ACTUAL_MAX_IFMT_OPERANDS
|
||||
#if CGEN_ACTUAL_MAX_IFMT_OPERANDS > CGEN_MAX_IFMT_OPERANDS
|
||||
#error "CGEN_ACTUAL_MAX_IFMT_OPERANDS too high - enlarge CGEN_MAX_IFMT_OPERANDS"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
|
|
@ -78,6 +78,7 @@ struct d10v_opcode
|
|||
#define WF0 128 /* modifies f0 */
|
||||
#define WCAR 256 /* write Carry */
|
||||
#define BRANCH 512 /* branch, no link */
|
||||
#define ALONE 1024 /* short but pack with a NOP if on asm line alone */
|
||||
|
||||
/* the opcode */
|
||||
long opcode;
|
||||
|
|
|
@ -182,7 +182,7 @@ struct h8_opcode
|
|||
|
||||
#define NEW_SOP(code, in,x,name) \
|
||||
{code, in, x, name
|
||||
#define EOP ,0,0,0 }
|
||||
#define EOP ,0,0,0,0 }
|
||||
|
||||
#define TWOOP(code, name, op1, op2,op3) \
|
||||
{ code,1, 2,name, {{IMM8, RD8, E}}, {{ op1, RD8, IMM8, IGNORE, E, 0, 0, 0, 0}}, 0, 0, 0, 0},\
|
||||
|
|
|
@ -70,9 +70,9 @@ struct pa_opcode
|
|||
|
||||
In the args field, the following characters are unused:
|
||||
|
||||
' " & - / 34 6789:;< > @'
|
||||
' " - / 34 6789:;< > @'
|
||||
' C M [\] '
|
||||
' e g l y } '
|
||||
' e g } '
|
||||
|
||||
Here are all the characters:
|
||||
|
||||
|
@ -92,6 +92,7 @@ Kinds of operands:
|
|||
i 11 bit immediate value at 31
|
||||
j 14 bit immediate value at 31
|
||||
k 21 bit immediate value at 31
|
||||
l 16 bit immediate value at 31 (wide mode only, unusual encoding).
|
||||
n nullification for branch instructions
|
||||
N nullification for spop and copr instructions
|
||||
w 12 bit branch displacement
|
||||
|
@ -157,6 +158,8 @@ Also these:
|
|||
# 14bit offset for double precision FP load long/store.
|
||||
J Yet another 14bit offset with an unusual encoding.
|
||||
K Yet another 14bit offset with an unusual encoding.
|
||||
y 16bit offset for single precision FP long load/store (PA2.0 wide).
|
||||
& 16bit offset for double precision FP long load/store (PA2.0 wide).
|
||||
Y %sr0,%r31 -- implicit target of be,l instruction.
|
||||
@ implicit immediate value of 0
|
||||
|
||||
|
@ -243,6 +246,8 @@ Floating point registers all have 'f' as a prefix:
|
|||
fB operand 2 register with L/R halves at 15
|
||||
fC operand 3 register with L/R halves at 16:18,21:23
|
||||
fe Like fT, but encoding is different.
|
||||
fE Same as fe, except prints a space before register during disasm.
|
||||
fx target register at 15 (only for PA 2.0 long format FLDD/FSTD).
|
||||
|
||||
Float registers for fmpyadd and fmpysub:
|
||||
|
||||
|
@ -257,7 +262,7 @@ Float registers for fmpyadd and fmpysub:
|
|||
|
||||
/* List of characters not to put a space after. Note that
|
||||
"," is included, as the "spopN" operations use literal
|
||||
commas in their completer sections. */
|
||||
commas in their completer sections. */
|
||||
static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e$m}";
|
||||
|
||||
/* The order of the opcodes in this table is significant:
|
||||
|
@ -270,7 +275,7 @@ static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e
|
|||
static const struct pa_opcode pa_opcodes[] =
|
||||
{
|
||||
|
||||
/* pseudo-instructions */
|
||||
/* Pseudo-instructions. */
|
||||
|
||||
{ "ldi", 0x34000000, 0xffe0c000, "j,x", pa10, 0},/* ldo val(r0),r */
|
||||
|
||||
|
@ -312,8 +317,9 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "ldd", 0x0c0000c0, 0xfc0013c0, "cxccx(b),t", pa20, FLAG_STRICT},
|
||||
{ "ldd", 0x0c0010c0, 0xfc0013c0, "cmcc5(s,b),t", pa20, FLAG_STRICT},
|
||||
{ "ldd", 0x0c0010c0, 0xfc0013c0, "cmcc5(b),t", pa20, FLAG_STRICT},
|
||||
{ "ldd", 0x50000000, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT},
|
||||
{ "ldd", 0x50000000, 0xfc000002, "cq&(b),x", pa20w, FLAG_STRICT},
|
||||
{ "ldd", 0x50000000, 0xfc000002, "cq#(b),x", pa20, FLAG_STRICT},
|
||||
{ "ldw", 0x48000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
|
||||
{ "ldw", 0x0c000080, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldw", 0x0c000080, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldw", 0x0c0010a0, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
|
||||
|
@ -327,6 +333,7 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "ldw", 0x48000000, 0xfc000000, "j(s,b),x", pa10, 0},
|
||||
{ "ldw", 0x48000000, 0xfc000000, "j(s,b),x", pa10, 0},
|
||||
{ "ldw", 0x48000000, 0xfc000000, "j(b),x", pa10, 0},
|
||||
{ "ldh", 0x44000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
|
||||
{ "ldh", 0x0c000040, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldh", 0x0c000040, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldh", 0x0c001060, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
|
||||
|
@ -335,6 +342,7 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "ldh", 0x0c001040, 0xfc0013c0, "cmcc5(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldh", 0x44000000, 0xfc000000, "j(s,b),x", pa10, 0},
|
||||
{ "ldh", 0x44000000, 0xfc000000, "j(b),x", pa10, 0},
|
||||
{ "ldb", 0x40000000, 0xfc000000, "l(b),x", pa20w, FLAG_STRICT},
|
||||
{ "ldb", 0x0c000000, 0xfc0013c0, "cxccx(s,b),t", pa10, FLAG_STRICT},
|
||||
{ "ldb", 0x0c000000, 0xfc0013c0, "cxccx(b),t", pa10, FLAG_STRICT},
|
||||
{ "ldb", 0x0c001020, 0xfc1f33e0, "cocc@(s,b),t", pa20, FLAG_STRICT},
|
||||
|
@ -347,8 +355,9 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "std", 0x0c0012e0, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "std", 0x0c0012c0, 0xfc0013c0, "cmcCx,V(s,b)", pa20, FLAG_STRICT},
|
||||
{ "std", 0x0c0012c0, 0xfc0013c0, "cmcCx,V(b)", pa20, FLAG_STRICT},
|
||||
{ "std", 0x70000000, 0xfc000002, "cqx,#(s,b)", pa20, FLAG_STRICT},
|
||||
{ "std", 0x70000000, 0xfc000002, "cqx,&(b)", pa20w, FLAG_STRICT},
|
||||
{ "std", 0x70000000, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT},
|
||||
{ "stw", 0x68000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
|
||||
{ "stw", 0x0c0012a0, 0xfc0013ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
|
||||
{ "stw", 0x0c0012a0, 0xfc0013ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "stw", 0x0c001280, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
|
||||
|
@ -359,12 +368,14 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "stw", 0x7c000004, 0xfc000006, "cex,K(b)", pa20, FLAG_STRICT},
|
||||
{ "stw", 0x68000000, 0xfc000000, "x,j(s,b)", pa10, 0},
|
||||
{ "stw", 0x68000000, 0xfc000000, "x,j(b)", pa10, 0},
|
||||
{ "sth", 0x64000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
|
||||
{ "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
|
||||
{ "sth", 0x0c001260, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
|
||||
{ "sth", 0x0c001240, 0xfc0013c0, "cmcCx,V(b)", pa10, FLAG_STRICT},
|
||||
{ "sth", 0x64000000, 0xfc000000, "x,j(s,b)", pa10, 0},
|
||||
{ "sth", 0x64000000, 0xfc000000, "x,j(b)", pa10, 0},
|
||||
{ "stb", 0x60000000, 0xfc000000, "x,l(b)", pa20w, FLAG_STRICT},
|
||||
{ "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(s,b)", pa20, FLAG_STRICT},
|
||||
{ "stb", 0x0c001220, 0xfc0033ff, "cocCx,@(b)", pa20, FLAG_STRICT},
|
||||
{ "stb", 0x0c001200, 0xfc0013c0, "cmcCx,V(s,b)", pa10, FLAG_STRICT},
|
||||
|
@ -431,7 +442,7 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "addil", 0x28000000, 0xfc000000, "k,b,Z", pa10, 0},
|
||||
{ "addil", 0x28000000, 0xfc000000, "k,b", pa10, 0},
|
||||
|
||||
/* Branching instructions. */
|
||||
/* Branching instructions. */
|
||||
{ "b", 0xe8008000, 0xfc00e000, "cpnXL", pa20, FLAG_STRICT},
|
||||
{ "b", 0xe800a000, 0xfc00e000, "clnXL", pa20, FLAG_STRICT},
|
||||
{ "b", 0xe8000000, 0xfc00e000, "clnW,b", pa10, FLAG_STRICT},
|
||||
|
@ -471,7 +482,7 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "pushnom", 0xe8004001, 0xffffffff, "", pa20, FLAG_STRICT},
|
||||
{ "pushbts", 0xe8004001, 0xffe0ffff, "x", pa20, FLAG_STRICT},
|
||||
|
||||
/* Computation Instructions */
|
||||
/* Computation Instructions. */
|
||||
|
||||
{ "cmpclr", 0x080008a0, 0xfc000fe0, "?Sx,b,t", pa20, FLAG_STRICT},
|
||||
{ "cmpclr", 0x08000880, 0xfc000fe0, "?sx,b,t", pa10, FLAG_STRICT},
|
||||
|
@ -540,7 +551,7 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "sh3addl", 0x08000ac0, 0xfc000fe0, "?ax,b,t", pa10, 0},
|
||||
{ "sh3addo", 0x08000ec0, 0xfc000fe0, "?ax,b,t", pa10, 0},
|
||||
|
||||
/* Subword Operation Instructions */
|
||||
/* Subword Operation Instructions. */
|
||||
|
||||
{ "hadd", 0x08000300, 0xfc00ff20, "cHx,b,t", pa20, FLAG_STRICT},
|
||||
{ "havg", 0x080002c0, 0xfc00ffe0, "x,b,t", pa20, FLAG_STRICT},
|
||||
|
@ -554,7 +565,7 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "permh", 0xf8000000, 0xfc009020, "c*a,t", pa20, FLAG_STRICT},
|
||||
|
||||
|
||||
/* Extract and Deposit Instructions */
|
||||
/* Extract and Deposit Instructions. */
|
||||
|
||||
{ "shrpd", 0xd0000200, 0xfc001fe0, "?Xx,b,!,t", pa20, FLAG_STRICT},
|
||||
{ "shrpd", 0xd0000400, 0xfc001400, "?Xx,b,~,t", pa20, FLAG_STRICT},
|
||||
|
@ -587,7 +598,7 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "zdepi", 0xd4001800, 0xfc001c00, "?x5,p,T,b", pa10, 0},
|
||||
{ "depi", 0xd4001c00, 0xfc001c00, "?x5,p,T,b", pa10, 0},
|
||||
|
||||
/* System Control Instructions */
|
||||
/* System Control Instructions. */
|
||||
|
||||
{ "break", 0x00000000, 0xfc001fe0, "r,A", pa10, 0},
|
||||
{ "rfi", 0x00000c00, 0xffffff1f, "cr", pa10, FLAG_STRICT},
|
||||
|
@ -678,7 +689,7 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "gfr", 0x04001a80, 0xfc003fdf, "cZx(s,b)", pa11, 0},
|
||||
{ "gfr", 0x04001a80, 0xfc003fdf, "cZx(b)", pa11, 0},
|
||||
|
||||
/* Floating Point Coprocessor Instructions */
|
||||
/* Floating Point Coprocessor Instructions. */
|
||||
|
||||
{ "fldw", 0x24001020, 0xfc1f33a0, "cocc@(s,b),fT", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x24001020, 0xfc1f33a0, "cocc@(b),fT", pa20, FLAG_STRICT},
|
||||
|
@ -686,36 +697,36 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "fldw", 0x24000000, 0xfc001380, "cxccx(b),fT", pa10, FLAG_STRICT},
|
||||
{ "fldw", 0x24001000, 0xfc001380, "cmcc5(s,b),fT", pa10, FLAG_STRICT},
|
||||
{ "fldw", 0x24001000, 0xfc001380, "cmcc5(b),fT", pa10, FLAG_STRICT},
|
||||
{ "fldw", 0x5c000000, 0xfc000004, "d(s,b),fe", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x5c000000, 0xfc000004, "y(b),fe", pa20w, FLAG_STRICT},
|
||||
{ "fldw", 0x58000000, 0xfc000000, "cJy(b),fe", pa20w, FLAG_STRICT},
|
||||
{ "fldw", 0x5c000000, 0xfc000004, "d(b),fe", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x58000000, 0xfc000004, "cJd(s,b),fe", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x58000000, 0xfc000004, "cJd(b),fe", pa20, FLAG_STRICT},
|
||||
{ "fldw", 0x58000000, 0xfc000000, "cJd(b),fe", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(s,b),ft", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001020, 0xfc1f33e0, "cocc@(b),ft", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x2c000000, 0xfc0013c0, "cxccx(s,b),ft", pa10, FLAG_STRICT},
|
||||
{ "fldd", 0x2c000000, 0xfc0013c0, "cxccx(b),ft", pa10, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001000, 0xfc0013c0, "cmcc5(s,b),ft", pa10, FLAG_STRICT},
|
||||
{ "fldd", 0x2c001000, 0xfc0013c0, "cmcc5(b),ft", pa10, FLAG_STRICT},
|
||||
{ "fldd", 0x50000002, 0xfc000002, "cq#(s,b),x", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x50000002, 0xfc000002, "cq#(b),x", pa20, FLAG_STRICT},
|
||||
{ "fldd", 0x50000002, 0xfc000002, "cq&(b),fx", pa20w, FLAG_STRICT},
|
||||
{ "fldd", 0x50000002, 0xfc000002, "cq#(b),fx", pa20, FLAG_STRICT},
|
||||
{ "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24001220, 0xfc1f33a0, "cocCfT,@(b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24000200, 0xfc001380, "cxcCfT,x(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24000200, 0xfc001380, "cxcCfT,x(b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24001200, 0xfc001380, "cmcCfT,5(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x24001200, 0xfc001380, "cmcCfT,5(b)", pa10, FLAG_STRICT},
|
||||
{ "fstw", 0x7c000000, 0xfc000004, "fe,d(s,b)", pa20, FLAG_STRICT},
|
||||
{ "fstw", 0x7c000000, 0xfc000004, "fE,y(b)", pa20w, FLAG_STRICT},
|
||||
{ "fstw", 0x78000000, 0xfc000000, "cJfe,y(b)", pa20w, FLAG_STRICT},
|
||||
{ "fstw", 0x7c000000, 0xfc000004, "fe,d(b)", pa20, FLAG_STRICT},
|
||||
{ "fstw", 0x78000000, 0xfc000004, "cJfe,d(s,b)", pa20, FLAG_STRICT},
|
||||
{ "fstw", 0x78000000, 0xfc000004, "cJfe,d(b)", pa20, FLAG_STRICT},
|
||||
{ "fstw", 0x78000000, 0xfc000000, "cJfe,d(b)", pa20, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001220, 0xfc1f33e0, "cocCft,@(b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c000200, 0xfc0013c0, "cxcCft,x(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c000200, 0xfc0013c0, "cxcCft,x(b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001200, 0xfc0013c0, "cmcCft,5(s,b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x2c001200, 0xfc0013c0, "cmcCft,5(b)", pa10, FLAG_STRICT},
|
||||
{ "fstd", 0x70000002, 0xfc000002, "cqx,#(s,b)", pa20, FLAG_STRICT},
|
||||
{ "fstd", 0x70000002, 0xfc000002, "cqx,#(b)", pa20, FLAG_STRICT},
|
||||
{ "fstd", 0x70000002, 0xfc000002, "cqfx,&(b)", pa20w, FLAG_STRICT},
|
||||
{ "fstd", 0x70000002, 0xfc000002, "cqfx,#(b)", pa20, FLAG_STRICT},
|
||||
{ "fldwx", 0x24000000, 0xfc001f80, "cxx(s,b),fT", pa10, 0},
|
||||
{ "fldwx", 0x24000000, 0xfc001f80, "cxx(b),fT", pa10, 0},
|
||||
{ "flddx", 0x2c000000, 0xfc001fc0, "cxx(s,b),ft", pa10, 0},
|
||||
|
@ -782,12 +793,12 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
{ "ftest", 0x30002420, 0xffffffff, "", pa10, 0},
|
||||
{ "fid", 0x30000000, 0xffffffff, "", pa11, 0},
|
||||
|
||||
/* Performance Monitor Instructions */
|
||||
/* Performance Monitor Instructions. */
|
||||
|
||||
{ "pmdis", 0x30000280, 0xffffffdf, "N", pa20, FLAG_STRICT},
|
||||
{ "pmenb", 0x30000680, 0xffffffff, "", pa20, FLAG_STRICT},
|
||||
|
||||
/* Assist Instructions */
|
||||
/* Assist Instructions. */
|
||||
|
||||
{ "spop0", 0x10000000, 0xfc000600, "v,ON", pa10, 0},
|
||||
{ "spop1", 0x10000200, 0xfc000600, "v,oNt", pa10, 0},
|
||||
|
@ -830,7 +841,7 @@ static const struct pa_opcode pa_opcodes[] =
|
|||
|
||||
#define NUMOPCODES ((sizeof pa_opcodes)/(sizeof pa_opcodes[0]))
|
||||
|
||||
/* SKV 12/18/92. Added some denotations for various operands. */
|
||||
/* SKV 12/18/92. Added some denotations for various operands. */
|
||||
|
||||
#define PA_IMM11_AT_31 'i'
|
||||
#define PA_IMM14_AT_31 'j'
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,388 @@
|
|||
/* ia64.h -- Header file for ia64 opcode table
|
||||
Copyright (C) 1998, 1999 David Mosberger-Tang <davidm@hpl.hp.com>
|
||||
|
||||
See the file HP-COPYRIGHT for additional information. */
|
||||
|
||||
#ifndef opcode_ia64_h
|
||||
#define opcode_ia64_h
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <bfd.h>
|
||||
|
||||
|
||||
typedef BFD_HOST_U_64_BIT ia64_insn;
|
||||
|
||||
enum ia64_insn_type
|
||||
{
|
||||
IA64_TYPE_NIL = 0, /* illegal type */
|
||||
IA64_TYPE_A, /* integer alu (I- or M-unit) */
|
||||
IA64_TYPE_I, /* non-alu integer (I-unit) */
|
||||
IA64_TYPE_M, /* memory (M-unit) */
|
||||
IA64_TYPE_B, /* branch (B-unit) */
|
||||
IA64_TYPE_F, /* floating-point (F-unit) */
|
||||
IA64_TYPE_X, /* long encoding (X-unit) */
|
||||
IA64_TYPE_DYN, /* Dynamic opcode */
|
||||
IA64_NUM_TYPES
|
||||
};
|
||||
|
||||
enum ia64_unit
|
||||
{
|
||||
IA64_UNIT_NIL = 0, /* illegal unit */
|
||||
IA64_UNIT_I, /* integer unit */
|
||||
IA64_UNIT_M, /* memory unit */
|
||||
IA64_UNIT_B, /* branching unit */
|
||||
IA64_UNIT_F, /* floating-point unit */
|
||||
IA64_UNIT_L, /* long "unit" */
|
||||
IA64_UNIT_X, /* may be integer or branch unit */
|
||||
IA64_NUM_UNITS
|
||||
};
|
||||
|
||||
/* Changes to this enumeration must be propagated to the operand table in
|
||||
bfd/cpu-ia64-opc.c
|
||||
*/
|
||||
enum ia64_opnd
|
||||
{
|
||||
IA64_OPND_NIL, /* no operand---MUST BE FIRST!*/
|
||||
|
||||
/* constants */
|
||||
IA64_OPND_AR_CCV, /* application register ccv (ar.ccv) */
|
||||
IA64_OPND_AR_PFS, /* application register pfs (ar.pfs) */
|
||||
IA64_OPND_C1, /* the constant 1 */
|
||||
IA64_OPND_C8, /* the constant 8 */
|
||||
IA64_OPND_C16, /* the constant 16 */
|
||||
IA64_OPND_GR0, /* gr0 */
|
||||
IA64_OPND_IP, /* instruction pointer (ip) */
|
||||
IA64_OPND_PR, /* predicate register (pr) */
|
||||
IA64_OPND_PR_ROT, /* rotating predicate register (pr.rot) */
|
||||
IA64_OPND_PSR, /* processor status register (psr) */
|
||||
IA64_OPND_PSR_L, /* processor status register L (psr.l) */
|
||||
IA64_OPND_PSR_UM, /* processor status register UM (psr.um) */
|
||||
|
||||
/* register operands: */
|
||||
IA64_OPND_AR3, /* third application register # (bits 20-26) */
|
||||
IA64_OPND_B1, /* branch register # (bits 6-8) */
|
||||
IA64_OPND_B2, /* branch register # (bits 13-15) */
|
||||
IA64_OPND_CR3, /* third control register # (bits 20-26) */
|
||||
IA64_OPND_F1, /* first floating-point register # */
|
||||
IA64_OPND_F2, /* second floating-point register # */
|
||||
IA64_OPND_F3, /* third floating-point register # */
|
||||
IA64_OPND_F4, /* fourth floating-point register # */
|
||||
IA64_OPND_P1, /* first predicate # */
|
||||
IA64_OPND_P2, /* second predicate # */
|
||||
IA64_OPND_R1, /* first register # */
|
||||
IA64_OPND_R2, /* second register # */
|
||||
IA64_OPND_R3, /* third register # */
|
||||
IA64_OPND_R3_2, /* third register # (limited to gr0-gr3) */
|
||||
|
||||
/* indirect operands: */
|
||||
IA64_OPND_CPUID_R3, /* cpuid[reg] */
|
||||
IA64_OPND_DBR_R3, /* dbr[reg] */
|
||||
IA64_OPND_DTR_R3, /* dtr[reg] */
|
||||
IA64_OPND_ITR_R3, /* itr[reg] */
|
||||
IA64_OPND_IBR_R3, /* ibr[reg] */
|
||||
IA64_OPND_MR3, /* memory at addr of third register # */
|
||||
IA64_OPND_MSR_R3, /* msr[reg] */
|
||||
IA64_OPND_PKR_R3, /* pkr[reg] */
|
||||
IA64_OPND_PMC_R3, /* pmc[reg] */
|
||||
IA64_OPND_PMD_R3, /* pmd[reg] */
|
||||
IA64_OPND_RR_R3, /* rr[reg] */
|
||||
|
||||
/* immediate operands: */
|
||||
IA64_OPND_CCNT5, /* 5-bit count (31 - bits 20-24) */
|
||||
IA64_OPND_CNT2a, /* 2-bit count (1 + bits 27-28) */
|
||||
IA64_OPND_CNT2b, /* 2-bit count (bits 27-28): 1, 2, 3 */
|
||||
IA64_OPND_CNT2c, /* 2-bit count (bits 30-31): 0, 7, 15, or 16 */
|
||||
IA64_OPND_CNT5, /* 5-bit count (bits 14-18) */
|
||||
IA64_OPND_CNT6, /* 6-bit count (bits 27-32) */
|
||||
IA64_OPND_CPOS6a, /* 6-bit count (63 - bits 20-25) */
|
||||
IA64_OPND_CPOS6b, /* 6-bit count (63 - bits 14-19) */
|
||||
IA64_OPND_CPOS6c, /* 6-bit count (63 - bits 31-36) */
|
||||
IA64_OPND_IMM1, /* signed 1-bit immediate (bit 36) */
|
||||
IA64_OPND_IMMU2, /* unsigned 2-bit immediate (bits 13-14) */
|
||||
IA64_OPND_IMMU7a, /* unsigned 7-bit immediate (bits 13-19) */
|
||||
IA64_OPND_IMMU7b, /* unsigned 7-bit immediate (bits 20-26) */
|
||||
IA64_OPND_SOF, /* 8-bit stack frame size */
|
||||
IA64_OPND_SOL, /* 8-bit size of locals */
|
||||
IA64_OPND_SOR, /* 6-bit number of rotating registers (scaled by 8) */
|
||||
IA64_OPND_IMM8, /* signed 8-bit immediate (bits 13-19 & 36) */
|
||||
IA64_OPND_IMM8U4, /* cmp4*u signed 8-bit immediate (bits 13-19 & 36) */
|
||||
IA64_OPND_IMM8M1, /* signed 8-bit immediate -1 (bits 13-19 & 36) */
|
||||
IA64_OPND_IMM8M1U4, /* cmp4*u signed 8-bit immediate -1 (bits 13-19 & 36)*/
|
||||
IA64_OPND_IMM8M1U8, /* cmp*u signed 8-bit immediate -1 (bits 13-19 & 36) */
|
||||
IA64_OPND_IMMU9, /* unsigned 9-bit immediate (bits 33-34, 20-26) */
|
||||
IA64_OPND_IMM9a, /* signed 9-bit immediate (bits 6-12, 27, 36) */
|
||||
IA64_OPND_IMM9b, /* signed 9-bit immediate (bits 13-19, 27, 36) */
|
||||
IA64_OPND_IMM14, /* signed 14-bit immediate (bits 13-19, 27-32, 36) */
|
||||
IA64_OPND_IMM17, /* signed 17-bit immediate (2*bits 6-12, 24-31, 36) */
|
||||
IA64_OPND_IMMU21, /* unsigned 21-bit immediate (bits 6-25, 36) */
|
||||
IA64_OPND_IMM22, /* signed 22-bit immediate (bits 13-19, 22-36) */
|
||||
IA64_OPND_IMMU24, /* unsigned 24-bit immediate (bits 6-26, 31-32, 36) */
|
||||
IA64_OPND_IMM44, /* signed 44-bit immediate (2^16*bits 6-32, 36) */
|
||||
IA64_OPND_IMMU62, /* unsigned 62-bit immediate */
|
||||
IA64_OPND_IMMU64, /* unsigned 64-bit immediate (lotsa bits...) */
|
||||
IA64_OPND_INC3, /* signed 3-bit (bits 13-15): +/-1, 4, 8, 16 */
|
||||
IA64_OPND_LEN4, /* 4-bit count (bits 27-30 + 1) */
|
||||
IA64_OPND_LEN6, /* 6-bit count (bits 27-32 + 1) */
|
||||
IA64_OPND_MBTYPE4, /* 4-bit mux type (bits 20-23) */
|
||||
IA64_OPND_MHTYPE8, /* 8-bit mux type (bits 20-27) */
|
||||
IA64_OPND_POS6, /* 6-bit count (bits 14-19) */
|
||||
IA64_OPND_TAG13, /* signed 13-bit tag (ip + 16*bits 6-12, 33-34) */
|
||||
IA64_OPND_TAG13b, /* signed 13-bit tag (ip + 16*bits 24-32) */
|
||||
IA64_OPND_TGT25, /* signed 25-bit (ip + 16*bits 6-25, 36) */
|
||||
IA64_OPND_TGT25b, /* signed 25-bit (ip + 16*bits 6-12, 20-32, 36) */
|
||||
IA64_OPND_TGT25c, /* signed 25-bit (ip + 16*bits 13-32, 36) */
|
||||
IA64_OPND_TGT64, /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */
|
||||
|
||||
IA64_OPND_COUNT /* # of operand types (MUST BE LAST!) */
|
||||
};
|
||||
|
||||
enum ia64_dependency_mode
|
||||
{
|
||||
IA64_DV_RAW,
|
||||
IA64_DV_WAW,
|
||||
IA64_DV_WAR,
|
||||
};
|
||||
|
||||
enum ia64_dependency_semantics
|
||||
{
|
||||
IA64_DVS_NONE,
|
||||
IA64_DVS_IMPLIED,
|
||||
IA64_DVS_IMPLIEDF,
|
||||
IA64_DVS_DATA,
|
||||
IA64_DVS_INSTR,
|
||||
IA64_DVS_SPECIFIC,
|
||||
IA64_DVS_OTHER,
|
||||
};
|
||||
|
||||
enum ia64_resource_specifier
|
||||
{
|
||||
IA64_RS_ANY,
|
||||
IA64_RS_AR_K,
|
||||
IA64_RS_AR_UNAT,
|
||||
IA64_RS_AR, /* 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111 */
|
||||
IA64_RS_ARb, /* 48-63, 112-127 */
|
||||
IA64_RS_BR,
|
||||
IA64_RS_CFM,
|
||||
IA64_RS_CPUID,
|
||||
IA64_RS_CR_IRR,
|
||||
IA64_RS_CR_LRR,
|
||||
IA64_RS_CR, /* 3-7,10-15,18,26-63,75-79,82-127 */
|
||||
IA64_RS_DBR,
|
||||
IA64_RS_FR,
|
||||
IA64_RS_FRb,
|
||||
IA64_RS_GR0,
|
||||
IA64_RS_GR,
|
||||
IA64_RS_IBR,
|
||||
IA64_RS_INSERVICE, /* CR[EOI] or CR[IVR] */
|
||||
IA64_RS_MSR,
|
||||
IA64_RS_PKR,
|
||||
IA64_RS_PMC,
|
||||
IA64_RS_PMD,
|
||||
IA64_RS_PR,
|
||||
IA64_RS_PR63,
|
||||
IA64_RS_RR,
|
||||
|
||||
IA64_RS_ARX, /* ARs not in RS_AR or RS_ARb */
|
||||
IA64_RS_CRX, /* CRs not in RS_CR */
|
||||
IA64_RS_PSR, /* PSR bits */
|
||||
IA64_RS_RSE, /* implementation-specific RSE resources */
|
||||
IA64_RS_AR_FPSR,
|
||||
};
|
||||
|
||||
enum ia64_rse_resource
|
||||
{
|
||||
IA64_RSE_N_STACKED_PHYS,
|
||||
IA64_RSE_BOF,
|
||||
IA64_RSE_STORE_REG,
|
||||
IA64_RSE_LOAD_REG,
|
||||
IA64_RSE_BSPLOAD,
|
||||
IA64_RSE_RNATBITINDEX,
|
||||
IA64_RSE_CFLE,
|
||||
IA64_RSE_NDIRTY,
|
||||
};
|
||||
|
||||
/* Information about a given resource dependency */
|
||||
struct ia64_dependency
|
||||
{
|
||||
/* Name of the resource */
|
||||
const char *name;
|
||||
/* Does this dependency need further specification? */
|
||||
enum ia64_resource_specifier specifier;
|
||||
/* Mode of dependency */
|
||||
enum ia64_dependency_mode mode;
|
||||
/* Dependency semantics */
|
||||
enum ia64_dependency_semantics semantics;
|
||||
/* Register index, if applicable (distinguishes AR, CR, and PSR deps) */
|
||||
#define REG_NONE (-1)
|
||||
int regindex;
|
||||
/* Special info on semantics */
|
||||
const char *info;
|
||||
};
|
||||
|
||||
/* Two arrays of indexes into the ia64_dependency table.
|
||||
chks are dependencies to check for conflicts when an opcode is
|
||||
encountered; regs are dependencies to register (mark as used) when an
|
||||
opcode is used. chks correspond to readers (RAW) or writers (WAW or
|
||||
WAR) of a resource, while regs correspond to writers (RAW or WAW) and
|
||||
readers (WAR) of a resource. */
|
||||
struct ia64_opcode_dependency
|
||||
{
|
||||
int nchks;
|
||||
const unsigned short *chks;
|
||||
int nregs;
|
||||
const unsigned short *regs;
|
||||
};
|
||||
|
||||
/* encode/extract the note/index for a dependency */
|
||||
#define RDEP(N,X) (((N)<<11)|(X))
|
||||
#define NOTE(X) (((X)>>11)&0x1F)
|
||||
#define DEP(X) ((X)&0x7FF)
|
||||
|
||||
/* A template descriptor describes the execution units that are active
|
||||
for each of the three slots. It also specifies the location of
|
||||
instruction group boundaries that may be present between two slots. */
|
||||
struct ia64_templ_desc
|
||||
{
|
||||
int group_boundary; /* 0=no boundary, 1=between slot 0 & 1, etc. */
|
||||
enum ia64_unit exec_unit[3];
|
||||
const char *name;
|
||||
};
|
||||
|
||||
/* The opcode table is an array of struct ia64_opcode. */
|
||||
|
||||
struct ia64_opcode
|
||||
{
|
||||
/* The opcode name. */
|
||||
const char *name;
|
||||
|
||||
/* The type of the instruction: */
|
||||
enum ia64_insn_type type;
|
||||
|
||||
/* Number of output operands: */
|
||||
int num_outputs;
|
||||
|
||||
/* The opcode itself. Those bits which will be filled in with
|
||||
operands are zeroes. */
|
||||
ia64_insn opcode;
|
||||
|
||||
/* The opcode mask. This is used by the disassembler. This is a
|
||||
mask containing ones indicating those bits which must match the
|
||||
opcode field, and zeroes indicating those bits which need not
|
||||
match (and are presumably filled in by operands). */
|
||||
ia64_insn mask;
|
||||
|
||||
/* An array of operand codes. Each code is an index into the
|
||||
operand table. They appear in the order which the operands must
|
||||
appear in assembly code, and are terminated by a zero. */
|
||||
enum ia64_opnd operands[5];
|
||||
|
||||
/* One bit flags for the opcode. These are primarily used to
|
||||
indicate specific processors and environments support the
|
||||
instructions. The defined values are listed below. */
|
||||
unsigned int flags;
|
||||
|
||||
/* Used by ia64_find_next_opcode (). */
|
||||
short ent_index;
|
||||
|
||||
/* Opcode dependencies. */
|
||||
const struct ia64_opcode_dependency *dependencies;
|
||||
};
|
||||
|
||||
/* Values defined for the flags field of a struct ia64_opcode. */
|
||||
|
||||
#define IA64_OPCODE_FIRST (1<<0) /* must be first in an insn group */
|
||||
#define IA64_OPCODE_X_IN_MLX (1<<1) /* insn is allowed in X slot of MLX */
|
||||
#define IA64_OPCODE_LAST (1<<2) /* must be last in an insn group */
|
||||
#define IA64_OPCODE_PRIV (1<<3) /* privileged instruct */
|
||||
#define IA64_OPCODE_SLOT2 (1<<4) /* insn allowed in slot 2 only */
|
||||
#define IA64_OPCODE_NO_PRED (1<<5) /* insn cannot be predicated */
|
||||
#define IA64_OPCODE_PSEUDO (1<<6) /* insn is a pseudo-op */
|
||||
#define IA64_OPCODE_F2_EQ_F3 (1<<7) /* constraint: F2 == F3 */
|
||||
#define IA64_OPCODE_LEN_EQ_64MCNT (1<<8) /* constraint: LEN == 64-CNT */
|
||||
#define IA64_OPCODE_MOD_RRBS (1<<9) /* modifies all rrbs in CFM */
|
||||
|
||||
/* A macro to extract the major opcode from an instruction. */
|
||||
#define IA64_OP(i) (((i) >> 37) & 0xf)
|
||||
|
||||
enum ia64_operand_class
|
||||
{
|
||||
IA64_OPND_CLASS_CST, /* constant */
|
||||
IA64_OPND_CLASS_REG, /* register */
|
||||
IA64_OPND_CLASS_IND, /* indirect register */
|
||||
IA64_OPND_CLASS_ABS, /* absolute value */
|
||||
IA64_OPND_CLASS_REL, /* IP-relative value */
|
||||
};
|
||||
|
||||
/* The operands table is an array of struct ia64_operand. */
|
||||
|
||||
struct ia64_operand
|
||||
{
|
||||
enum ia64_operand_class class;
|
||||
|
||||
/* Set VALUE as the operand bits for the operand of type SELF in the
|
||||
instruction pointed to by CODE. If an error occurs, *CODE is not
|
||||
modified and the returned string describes the cause of the
|
||||
error. If no error occurs, NULL is returned. */
|
||||
const char *(*insert) (const struct ia64_operand *self, ia64_insn value,
|
||||
ia64_insn *code);
|
||||
|
||||
/* Extract the operand bits for an operand of type SELF from
|
||||
instruction CODE store them in *VALUE. If an error occurs, the
|
||||
cause of the error is described by the string returned. If no
|
||||
error occurs, NULL is returned. */
|
||||
const char *(*extract) (const struct ia64_operand *self, ia64_insn code,
|
||||
ia64_insn *value);
|
||||
|
||||
/* A string whose meaning depends on the operand class. */
|
||||
|
||||
const char *str;
|
||||
|
||||
struct bit_field
|
||||
{
|
||||
/* The number of bits in the operand. */
|
||||
int bits;
|
||||
|
||||
/* How far the operand is left shifted in the instruction. */
|
||||
int shift;
|
||||
}
|
||||
field[4]; /* no operand has more than this many bit-fields */
|
||||
|
||||
unsigned int flags;
|
||||
|
||||
const char *desc; /* brief description */
|
||||
};
|
||||
|
||||
/* Values defined for the flags field of a struct ia64_operand. */
|
||||
|
||||
/* Disassemble as signed decimal (instead of hex): */
|
||||
#define IA64_OPND_FLAG_DECIMAL_SIGNED (1<<0)
|
||||
/* Disassemble as unsigned decimal (instead of hex): */
|
||||
#define IA64_OPND_FLAG_DECIMAL_UNSIGNED (1<<1)
|
||||
|
||||
extern const struct ia64_templ_desc ia64_templ_desc[16];
|
||||
|
||||
/* The tables are sorted by major opcode number and are otherwise in
|
||||
the order in which the disassembler should consider instructions. */
|
||||
extern struct ia64_opcode ia64_opcodes_a[];
|
||||
extern struct ia64_opcode ia64_opcodes_i[];
|
||||
extern struct ia64_opcode ia64_opcodes_m[];
|
||||
extern struct ia64_opcode ia64_opcodes_b[];
|
||||
extern struct ia64_opcode ia64_opcodes_f[];
|
||||
extern struct ia64_opcode ia64_opcodes_d[];
|
||||
|
||||
|
||||
extern struct ia64_opcode *ia64_find_opcode (const char *name);
|
||||
extern struct ia64_opcode *ia64_find_next_opcode (struct ia64_opcode *ent);
|
||||
|
||||
extern struct ia64_opcode *ia64_dis_opcode (ia64_insn insn,
|
||||
enum ia64_insn_type type);
|
||||
|
||||
extern void ia64_free_opcode (struct ia64_opcode *ent);
|
||||
extern const struct ia64_dependency *ia64_find_dependency (int index);
|
||||
|
||||
/* To avoid circular library dependencies, this array is implemented
|
||||
in bfd/cpu-ia64-opc.c: */
|
||||
extern const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT];
|
||||
|
||||
#endif /* opcode_ia64_h */
|
|
@ -88,6 +88,9 @@ extern const int powerpc_num_opcodes;
|
|||
/* Opcode is supported as part of the 64-bit bridge. */
|
||||
#define PPC_OPCODE_64_BRIDGE (0400)
|
||||
|
||||
/* Opcode is supported by Altivec Vector Unit */
|
||||
#define PPC_OPCODE_ALTIVEC (01000)
|
||||
|
||||
/* A macro to extract the major opcode from an instruction. */
|
||||
#define PPC_OP(i) (((i) >> 26) & 0x3f)
|
||||
|
||||
|
@ -221,6 +224,11 @@ extern const struct powerpc_operand powerpc_operands[];
|
|||
number is allowed). This flag will only be set for a signed
|
||||
operand. */
|
||||
#define PPC_OPERAND_NEGATIVE (04000)
|
||||
|
||||
/* This operand names a vector unit register. The disassembler
|
||||
prints these with a leading 'v'. */
|
||||
#define PPC_OPERAND_VR (010000)
|
||||
|
||||
|
||||
/* The POWER and PowerPC assemblers use a few macros. We keep them
|
||||
with the operands table for simplicity. The macro table is an
|
||||
|
|
|
@ -0,0 +1,167 @@
|
|||
/* tic54x.h -- Header file for TI TMS320C54X opcode table
|
||||
Copyright 1999, 2000 Free Software Foundation, Inc.
|
||||
Written by Timothy Wall (twall@cygnus.com)
|
||||
|
||||
This file is part of GDB, GAS, and the GNU binutils.
|
||||
|
||||
GDB, GAS, and the GNU binutils are free software; you can redistribute
|
||||
them and/or modify them under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either version
|
||||
1, or (at your option) any later version.
|
||||
|
||||
GDB, GAS, and the GNU binutils are distributed in the hope that they
|
||||
will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
|
||||
the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this file; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA. */
|
||||
|
||||
#ifndef _TIC54X_H_
|
||||
#define _TIC54X_H_
|
||||
|
||||
typedef struct _symbol
|
||||
{
|
||||
const char *name;
|
||||
unsigned short value;
|
||||
} symbol;
|
||||
|
||||
enum optype {
|
||||
OPT = 0x8000,
|
||||
OP_None = 0x0,
|
||||
|
||||
OP_Xmem, /* AR3 or AR4, indirect */
|
||||
OP_Ymem, /* AR3 or AR4, indirect */
|
||||
OP_pmad, /* PROG mem, direct */
|
||||
OP_dmad, /* DATA mem, direct */
|
||||
OP_Smem,
|
||||
OP_Lmem, /* 32-bit single-addressed (direct/indirect) */
|
||||
OP_MMR,
|
||||
OP_PA,
|
||||
OP_Sind,
|
||||
OP_xpmad,
|
||||
OP_xpmad_ms7,
|
||||
OP_MMRX,
|
||||
OP_MMRY,
|
||||
|
||||
OP_SRC1, /* src accumulator in bit 8 */
|
||||
OP_SRC, /* src accumulator in bit 9 */
|
||||
OP_RND, /* rounded result dst accumulator, opposite of bit 8 */
|
||||
OP_DST, /* dst accumulator in bit 8 */
|
||||
OP_ARX, /* arX in bits 0-3 */
|
||||
OP_SHIFT, /* -16 to 15 (SHIFT), bits 0-4 */
|
||||
OP_SHFT, /* 0 to 15 (SHIFT1 in summary), bits 0-3 */
|
||||
OP_B, /* ACC B only */
|
||||
OP_A, /* ACC A only */
|
||||
|
||||
OP_lk, /* 16-bit immediate, '#' optional */
|
||||
OP_TS,
|
||||
OP_k8, /* -128 <= k <= 128 */
|
||||
OP_16, /* literal "16" */
|
||||
OP_BITC, /* 0 to 16 */
|
||||
OP_CC, /* condition code */
|
||||
OP_CC2, /* 4-bit condition code */
|
||||
OP_CC3, /* 2-bit condition code */
|
||||
OP_123, /* 1, 2, or 3 */
|
||||
OP_031, /* 0-31, numeric */
|
||||
OP_k5, /* 0 to 31 */
|
||||
OP_k8u, /* 0 to 255 */
|
||||
OP_ASM, /* "ASM" */
|
||||
OP_T, /* "T" */
|
||||
OP_DP, /* "DP" */
|
||||
OP_ARP, /* "ARP" */
|
||||
OP_k3, /* 0-7 */
|
||||
OP_lku, /* 0 to 65535 */
|
||||
OP_N, /* 0/1 or ST0/ST1 */
|
||||
OP_SBIT, /* status bit or 0-15 */
|
||||
OP_12, /* one or two */
|
||||
OP_k9, /* 9 bits of data page (DP) address */
|
||||
OP_TRN, /* "TRN" */
|
||||
|
||||
};
|
||||
|
||||
typedef struct _template
|
||||
{
|
||||
/* The opcode mnemonic */
|
||||
const char *name;
|
||||
|
||||
unsigned int words; /* insn size in words */
|
||||
int minops, maxops; /* min/max operand count */
|
||||
/* The significant bits in the opcode. Other bits are zero.
|
||||
Instructions with more than 16 bits of opcode store the rest in the upper
|
||||
16 bits.
|
||||
*/
|
||||
unsigned short opcode;
|
||||
#define INDIRECT(OP) ((OP)&0x80)
|
||||
#define MOD(OP) (((OP)>>3)&0xF)
|
||||
#define ARF(OP) ((OP)&0x7)
|
||||
#define IS_LKADDR(OP) (INDIRECT(OP) && MOD(OP)>=12)
|
||||
#define SRC(OP) ((OP)&0x200)
|
||||
#define DST(OP) ((OP)&0x100)
|
||||
#define SRC1(OP) ((OP)&0x100)
|
||||
#define SHIFT(OP) (((OP)&0x10)?(((OP)&0x1F)-32):((OP)&0x1F))
|
||||
#define SHFT(OP) ((OP)&0xF)
|
||||
#define ARX(OP) ((OP)&0x7)
|
||||
#define XMEM(OP) (((OP)&0x00F0)>>4)
|
||||
#define YMEM(OP) ((OP)&0x000F)
|
||||
#define XMOD(C) (((C)&0xC)>>2)
|
||||
#define XARX(C) (((C)&0x3)+2)
|
||||
#define CC3(OP) (((OP)>>8)&0x3)
|
||||
#define SBIT(OP) ((OP)&0xF)
|
||||
#define MMR(OP) ((OP)&0x7F)
|
||||
#define MMRX(OP) ((((OP)>>4)&0xF)+16)
|
||||
#define MMRY(OP) (((OP)&0xF)+16)
|
||||
|
||||
#define OPTYPE(X) ((X)&~OPT)
|
||||
|
||||
/* Ones in this mask indicate which bits must match the opcode field.
|
||||
Zeroes indicate don't care bits (operands and/or opcode options) */
|
||||
unsigned short mask;
|
||||
|
||||
/* An array of operand codes (at most 4 operands) */
|
||||
#define MAX_OPERANDS 4
|
||||
enum optype operand_types[MAX_OPERANDS];
|
||||
|
||||
/* Special purpose flags (e.g. branch type, parallel, delay, etc)
|
||||
*/
|
||||
unsigned short flags;
|
||||
#define B_NEXT 0 /* normal execution, next insn is next address */
|
||||
#define B_BRANCH 1 /* next insn is in opcode */
|
||||
#define B_RET 2 /* next insn is on stack */
|
||||
#define B_BACC 3 /* next insn is in acc */
|
||||
#define B_REPEAT 4 /* next insn repeats */
|
||||
#define FL_BMASK 0x07
|
||||
|
||||
#define FL_DELAY 0x10 /* instruction uses delay slots */
|
||||
#define FL_EXT 0x20 /* instruction takes two words */
|
||||
#define FL_FAR 0x40 /* far mode addressing */
|
||||
#define FL_LP 0x80 /* LP-only instruction */
|
||||
#define FL_NR 0x100 /* no repeat allowed */
|
||||
#define FL_SMR 0x200 /* Smem read (for flagging write-only *+ARx */
|
||||
|
||||
unsigned short opcode2, mask2; /* some insns have an extended opcode */
|
||||
|
||||
} template;
|
||||
|
||||
typedef struct _partemplate {
|
||||
char *name;
|
||||
char *parname;
|
||||
unsigned int words; /* length in words */
|
||||
int minops, maxops; /* min/max operand count for 2nd part of insn */
|
||||
unsigned short opcode;
|
||||
unsigned short mask;
|
||||
enum optype operand_types[MAX_OPERANDS];
|
||||
enum optype paroperand_types[MAX_OPERANDS];
|
||||
} partemplate;
|
||||
|
||||
extern const template tic54x_unknown_opcode;
|
||||
extern const template tic54x_optab[];
|
||||
extern const partemplate tic54x_paroptab[];
|
||||
extern const symbol mmregs[], regs[];
|
||||
extern const symbol condition_codes[], cc2_codes[], status_bits[];
|
||||
extern const symbol cc3_codes[];
|
||||
extern const char *misc_symbols[];
|
||||
|
||||
#endif /* TIC54X_H */
|
|
@ -2779,6 +2779,11 @@ static const void *lt_preloaded_setup() {
|
|||
|
||||
# Quote the relink command for shipping.
|
||||
if test -n "$relink_command"; then
|
||||
# Preserve any variables that may affect compiler behavior
|
||||
variables_saved_for_relink="GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
|
||||
for var in $variables_saved_for_relink; do
|
||||
relink_command="$var=\""`eval \$echo \"X'$'$var\" | $Xsed -e "$sed_quote_subst"`"\"; export $var; $relink_command"
|
||||
done
|
||||
relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
|
||||
fi
|
||||
|
||||
|
|
2017
texinfo/texinfo.tex
2017
texinfo/texinfo.tex
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue