aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorDavid Carlton <carlton@bactrian.org>2003-05-23 18:40:58 +0000
committerDavid Carlton <carlton@bactrian.org>2003-05-23 18:40:58 +0000
commit52ba01a6d0a345b48e6a65ee6669f385466415aa (patch)
tree9e4d1dabc8e142f81e8b471a310846b814483074 /opcodes
parentd5ba3fe094903763b7462e773b9d7e0291773d6c (diff)
downloadgdb-52ba01a6d0a345b48e6a65ee6669f385466415aa.zip
gdb-52ba01a6d0a345b48e6a65ee6669f385466415aa.tar.gz
gdb-52ba01a6d0a345b48e6a65ee6669f385466415aa.tar.bz2
2003-05-23 David Carlton <carlton@bactrian.org>
* Merge with mainline; tag is carlton_dictionary-20030523-merge.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog34
-rw-r--r--opcodes/Makefile.am4
-rw-r--r--opcodes/Makefile.in4
-rwxr-xr-xopcodes/configure6
-rw-r--r--opcodes/configure.in2
-rw-r--r--opcodes/disassemble.c6
-rw-r--r--opcodes/i386-dis.c2
-rw-r--r--opcodes/i860-dis.c7
-rw-r--r--opcodes/z8k-dis.c30
9 files changed, 78 insertions, 17 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 9ff6e84..de8f363 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,37 @@
+2003-05-18 Jason Eckhardt <jle@rice.edu>
+
+ * i860-dis.c (print_insn_i860): Instruction shrd has a dual bit,
+ print it.
+
+2003-05-17 Andreas Jaeger <aj@suse.de>
+
+ * Makefile.am (libopcodes_la_LIBADD): Add libbfd.la.
+ (libopcodes_la_DEPENDENCIES): Add libbfd.la.
+ * Makefile.in: Regenerated.
+
+2003-05-16 Nick Clifton <nickc@redhat.com>
+
+ * configure.in (ALL_LINGUAS): Add Romanian translation.
+ * configure: Regenerate.
+ * po/ro.po: New file: Romanian translation.
+
+2003-05-12 Dhananjay Deshpande <dhananjayd@kpitcummins.com>
+
+ * disassemble.c (disassembler): Add support for h8300hn and h8300sn.
+
+2003-05-09 Alan Modra <amodra@bigpond.net.au>
+
+ * i386-dis.c (print_insn): Test intel_syntax against (char) -1 in
+ case char is unsigned.
+
+2003-05-01 Christian Groessler <chris@groessler.org>
+
+ * z8k-dis.c (z8k_lookup_instr): Optimize FETCH_DATA calls.
+ (unpack_instr): Fix representation of segmented addresses.
+ (intr_name): Added, contains names of the parameters to the EI/DI
+ instructions.
+ (unparse_instr): Fix display of EI/DI parameters.
+
2003-04-22 Doug Evans <dje@sebabeach.org>
* fr30-desc.c,fr30-desc.h,fr30-opc.c,fr30-opc.h: Regenerate.
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
index df20832..6ec05e4 100644
--- a/opcodes/Makefile.am
+++ b/opcodes/Makefile.am
@@ -282,8 +282,8 @@ disassemble.lo: disassemble.c $(INCDIR)/dis-asm.h
$(LIBTOOL) --mode=compile $(COMPILE) -c @archdefs@ $(srcdir)/disassemble.c
libopcodes_la_SOURCES = dis-buf.c disassemble.c
-libopcodes_la_DEPENDENCIES = $(OFILES)
-libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@
+libopcodes_la_DEPENDENCIES = $(OFILES) ../bfd/libbfd.la
+libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@ ../bfd/libbfd.la
libopcodes_la_LDFLAGS = -release $(VERSION) @WIN32LDFLAGS@
# libtool will build .libs/libopcodes.a. We create libopcodes.a in
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index 0220191..8c03c17 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -392,8 +392,8 @@ OFILES = @BFD_MACHINES@
INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ -I$(srcdir)/../intl -I../intl
libopcodes_la_SOURCES = dis-buf.c disassemble.c
-libopcodes_la_DEPENDENCIES = $(OFILES)
-libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@
+libopcodes_la_DEPENDENCIES = $(OFILES) ../bfd/libbfd.la
+libopcodes_la_LIBADD = $(OFILES) @WIN32LIBADD@ ../bfd/libbfd.la
libopcodes_la_LDFLAGS = -release $(VERSION) @WIN32LDFLAGS@
# libtool will build .libs/libopcodes.a. We create libopcodes.a in
diff --git a/opcodes/configure b/opcodes/configure
index be6e1b8..bb07938 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -33,7 +33,7 @@ ac_help="$ac_help
--enable-maintainer-mode enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer"
ac_help="$ac_help
- --install-libbfd controls installation of libbfd and related headers"
+ --enable-install-libbfd controls installation of libbfd and related headers"
ac_help="$ac_help
--disable-nls do not use Native Language Support"
ac_help="$ac_help
@@ -1669,7 +1669,7 @@ irix5* | irix6*)
# This must be Linux ELF.
linux-gnu*)
case $host_cpu in
- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+ alpha* | mips* | hppa* | i*86 | powerpc* | sparc* | ia64* )
lt_cv_deplibs_check_method=pass_all ;;
*)
# glibc up to 2.1.1 does not perform some relocations on ARM
@@ -2650,7 +2650,7 @@ else
fi
-ALL_LINGUAS="fr sv tr es da de id pt_BR"
+ALL_LINGUAS="fr sv tr es da de id pt_BR ro"
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
echo "configure:2656: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
diff --git a/opcodes/configure.in b/opcodes/configure.in
index e4014f1..ea64c84 100644
--- a/opcodes/configure.in
+++ b/opcodes/configure.in
@@ -78,7 +78,7 @@ AC_EXEEXT
AC_PROG_CC
-ALL_LINGUAS="fr sv tr es da de id pt_BR"
+ALL_LINGUAS="fr sv tr es da de id pt_BR ro"
CY_GNU_GETTEXT
. ${srcdir}/../bfd/configure.host
diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c
index 1408f39..2d1358e 100644
--- a/opcodes/disassemble.c
+++ b/opcodes/disassemble.c
@@ -141,9 +141,11 @@ disassembler (abfd)
#endif
#ifdef ARCH_h8300
case bfd_arch_h8300:
- if (bfd_get_mach(abfd) == bfd_mach_h8300h)
+ if (bfd_get_mach (abfd) == bfd_mach_h8300h
+ || bfd_get_mach (abfd) == bfd_mach_h8300hn)
disassemble = print_insn_h8300h;
- else if (bfd_get_mach(abfd) == bfd_mach_h8300s)
+ else if (bfd_get_mach (abfd) == bfd_mach_h8300s
+ || bfd_get_mach (abfd) == bfd_mach_h8300sn)
disassemble = print_insn_h8300s;
else
disassemble = print_insn_h8300;
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 79faee6..be78e83 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -1891,7 +1891,7 @@ print_insn (pc, info)
mode_64bit = (info->mach == bfd_mach_x86_64_intel_syntax
|| info->mach == bfd_mach_x86_64);
- if (intel_syntax == -1)
+ if (intel_syntax == (char) -1)
intel_syntax = (info->mach == bfd_mach_i386_i386_intel_syntax
|| info->mach == bfd_mach_x86_64_intel_syntax);
diff --git a/opcodes/i860-dis.c b/opcodes/i860-dis.c
index ba183ab..69a106d 100644
--- a/opcodes/i860-dis.c
+++ b/opcodes/i860-dis.c
@@ -138,8 +138,11 @@ print_insn_i860 (memaddr, info)
const char *s;
int val;
- /* If this a flop and its dual bit is set, prefix with 'd.'. */
- if ((insn & 0xfc000000) == 0x48000000 && (insn & 0x200))
+ /* If this a flop (or a shrd) and its dual bit is set,
+ prefix with 'd.'. */
+ if (((insn & 0xfc000000) == 0x48000000
+ || (insn & 0xfc000000) == 0xb0000000)
+ && (insn & 0x200))
(*info->fprintf_func) (info->stream, "d.%s\t", opcode->name);
else
(*info->fprintf_func) (info->stream, "%s\t", opcode->name);
diff --git a/opcodes/z8k-dis.c b/opcodes/z8k-dis.c
index 6c19138..69d1792 100644
--- a/opcodes/z8k-dis.c
+++ b/opcodes/z8k-dis.c
@@ -209,11 +209,13 @@ z8k_lookup_instr (nibbles, info)
int nibl_index, tabl_index;
int nibl_matched;
+ int need_fetch = 0;
unsigned short instr_nibl;
unsigned short tabl_datum, datum_class, datum_value;
nibl_matched = 0;
tabl_index = 0;
+ FETCH_DATA (info, 4);
while (!nibl_matched && z8k_table[tabl_index].name)
{
nibl_matched = 1;
@@ -222,8 +224,15 @@ z8k_lookup_instr (nibbles, info)
nibl_index++)
{
if ((nibl_index % 4) == 0)
- /* Fetch one word at a time. */
- FETCH_DATA (info, nibl_index + 4);
+ {
+ /* Fetch data only if it isn't already there. */
+ if (nibl_index >= 4 || (nibl_index < 4 && need_fetch))
+ FETCH_DATA (info, nibl_index + 4); /* Fetch one word at a time. */
+ if (nibl_index < 4)
+ need_fetch = 0;
+ else
+ need_fetch = 1;
+ }
instr_nibl = nibbles[nibl_index];
tabl_datum = z8k_table[tabl_index].byte_info[nibl_index];
@@ -414,14 +423,14 @@ unpack_instr (instr_data, is_segmented, info)
FETCH_DATA (info, nibl_count + 8);
instr_long = (instr_data->words[nibl_count] << 16)
| (instr_data->words[nibl_count + 4]);
- instr_data->address = ((instr_word & 0x7f00) << 8)
+ instr_data->address = ((instr_word & 0x7f00) << 16)
+ (instr_long & 0xffff);
nibl_count += 7;
seg_length = 2;
}
else
{
- instr_data->address = ((instr_word & 0x7f00) << 8)
+ instr_data->address = ((instr_word & 0x7f00) << 16)
+ (instr_word & 0x00ff);
nibl_count += 3;
}
@@ -484,6 +493,13 @@ unpack_instr (instr_data, is_segmented, info)
}
}
+static char *intr_names[] = {
+ "all", /* 0 */
+ "vi", /* 1 */
+ "nvi", /* 2 */
+ "none" /* 3 */
+};
+
static void
unparse_instr (instr_data, is_segmented)
instr_data_s *instr_data;
@@ -536,6 +552,12 @@ unparse_instr (instr_data, is_segmented)
strcat (out_str, tmp_str);
break;
case CLASS_IMM:
+ if (datum_value == ARG_IMM2) /* True with EI/DI instructions only. */
+ {
+ sprintf (tmp_str, "%s", intr_names[instr_data->interrupts]);
+ strcat (out_str, tmp_str);
+ break;
+ }
sprintf (tmp_str, "#0x%0lx", instr_data->immediate);
strcat (out_str, tmp_str);
break;