summaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorPatrick Macdonald <patrickm@redhat.com>2001-03-20 20:56:34 +0000
committerPatrick Macdonald <patrickm@redhat.com>2001-03-20 20:56:34 +0000
commit27fca2d871b27e82e9e461bbad4fefdb45910e05 (patch)
tree5a1c80dd3fdc7e39863be18ff714d60297d8b987 /opcodes
parentcc5ce0523570ebca894a56c35a88c0696f32c8c3 (diff)
downloadbinutils-gdb-27fca2d871b27e82e9e461bbad4fefdb45910e05.tar.gz
Add support for cgen machine determination.
* cgen-dis.in (print_insn_@arch@): Add support for target machine determination via CGEN_COMPUTE_MACH. * fr30-desc.c: Regenerate. * fr30-dis.c: Regenerate. * fr30-opc.h: Regenerate. * m32r-desc.c: Regenerate. * m32r-dis.c: Regenerate. * m32r-opc.h: Regenerate. * m32r-opinst.c: Regenerate.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog12
-rw-r--r--opcodes/cgen-dis.in12
-rw-r--r--opcodes/fr30-desc.c2
-rw-r--r--opcodes/fr30-dis.c12
-rw-r--r--opcodes/fr30-opc.h4
-rw-r--r--opcodes/m32r-desc.c2
-rw-r--r--opcodes/m32r-dis.c12
-rw-r--r--opcodes/m32r-opc.h4
-rw-r--r--opcodes/m32r-opinst.c2
9 files changed, 43 insertions, 19 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index dda0f0dbaef..692a029c4a0 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,15 @@
+2001-03-20 Patrick Macdonald <patrickm@redhat.com>
+
+ * cgen-dis.in (print_insn_@arch@): Add support for target machine
+ determination via CGEN_COMPUTE_MACH.
+ * fr30-desc.c: Regenerate.
+ * fr30-dis.c: Regenerate.
+ * fr30-opc.h: Regenerate.
+ * m32r-desc.c: Regenerate.
+ * m32r-dis.c: Regenerate.
+ * m32r-opc.h: Regenerate.
+ * m32r-opinst.c: Regenerate.
+
2001-03-20 H.J. Lu <hjl@gnu.org>
* configure.in: Remove the redundent AC_ARG_PROGRAM.
diff --git a/opcodes/cgen-dis.in b/opcodes/cgen-dis.in
index 0e7c35a5675..1cb8ea372f7 100644
--- a/opcodes/cgen-dis.in
+++ b/opcodes/cgen-dis.in
@@ -358,17 +358,21 @@ print_insn_@arch@ (pc, info)
arch = info->arch;
if (arch == bfd_arch_unknown)
arch = CGEN_BFD_ARCH;
-
- /* There's no standard way to compute the isa number (e.g. for arm thumb)
+
+ /* There's no standard way to compute the machine or isa number
so we leave it to the target. */
+#ifdef CGEN_COMPUTE_MACH
+ mach = CGEN_COMPUTE_MACH (info);
+#else
+ mach = info->mach;
+#endif
+
#ifdef CGEN_COMPUTE_ISA
isa = CGEN_COMPUTE_ISA (info);
#else
isa = 0;
#endif
- mach = info->mach;
-
/* If we've switched cpu's, close the current table and open a new one. */
if (cd
&& (isa != prev_isa
diff --git a/opcodes/fr30-desc.c b/opcodes/fr30-desc.c
index 00c37001299..4223833f622 100644
--- a/opcodes/fr30-desc.c
+++ b/opcodes/fr30-desc.c
@@ -1600,7 +1600,7 @@ fr30_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...)
const CGEN_MACH *mach =
lookup_mach_via_bfd_name (fr30_cgen_mach_table, name);
- machs |= mach->num << 1;
+ machs |= 1 << mach->num;
break;
}
case CGEN_CPU_OPEN_ENDIAN :
diff --git a/opcodes/fr30-dis.c b/opcodes/fr30-dis.c
index e75944de8fd..f389dcc1edb 100644
--- a/opcodes/fr30-dis.c
+++ b/opcodes/fr30-dis.c
@@ -624,17 +624,21 @@ print_insn_fr30 (pc, info)
arch = info->arch;
if (arch == bfd_arch_unknown)
arch = CGEN_BFD_ARCH;
-
- /* There's no standard way to compute the isa number (e.g. for arm thumb)
+
+ /* There's no standard way to compute the machine or isa number
so we leave it to the target. */
+#ifdef CGEN_COMPUTE_MACH
+ mach = CGEN_COMPUTE_MACH (info);
+#else
+ mach = info->mach;
+#endif
+
#ifdef CGEN_COMPUTE_ISA
isa = CGEN_COMPUTE_ISA (info);
#else
isa = 0;
#endif
- mach = info->mach;
-
/* If we've switched cpu's, close the current table and open a new one. */
if (cd
&& (isa != prev_isa
diff --git a/opcodes/fr30-opc.h b/opcodes/fr30-opc.h
index 33d3094efbd..623501dbd8f 100644
--- a/opcodes/fr30-opc.h
+++ b/opcodes/fr30-opc.h
@@ -77,14 +77,14 @@ typedef enum cgen_insn_type {
, FR30_INSN_ORCCR, FR30_INSN_STILM, FR30_INSN_ADDSP, FR30_INSN_EXTSB
, FR30_INSN_EXTUB, FR30_INSN_EXTSH, FR30_INSN_EXTUH, FR30_INSN_LDM0
, FR30_INSN_LDM1, FR30_INSN_STM0, FR30_INSN_STM1, FR30_INSN_ENTER
- , FR30_INSN_LEAVE, FR30_INSN_XCHB, FR30_INSN_MAX
+ , FR30_INSN_LEAVE, FR30_INSN_XCHB
} CGEN_INSN_TYPE;
/* Index of `invalid' insn place holder. */
#define CGEN_INSN_INVALID FR30_INSN_INVALID
/* Total number of insns in table. */
-#define MAX_INSNS ((int) FR30_INSN_MAX)
+#define MAX_INSNS ((int) FR30_INSN_XCHB + 1)
/* This struct records data prior to insertion or after extraction. */
struct cgen_fields
diff --git a/opcodes/m32r-desc.c b/opcodes/m32r-desc.c
index 111eb2d9a0f..8bcd7904798 100644
--- a/opcodes/m32r-desc.c
+++ b/opcodes/m32r-desc.c
@@ -1324,7 +1324,7 @@ m32r_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...)
const CGEN_MACH *mach =
lookup_mach_via_bfd_name (m32r_cgen_mach_table, name);
- machs |= mach->num << 1;
+ machs |= 1 << mach->num;
break;
}
case CGEN_CPU_OPEN_ENDIAN :
diff --git a/opcodes/m32r-dis.c b/opcodes/m32r-dis.c
index 8ffce7c7889..7164a40cf5c 100644
--- a/opcodes/m32r-dis.c
+++ b/opcodes/m32r-dis.c
@@ -563,17 +563,21 @@ print_insn_m32r (pc, info)
arch = info->arch;
if (arch == bfd_arch_unknown)
arch = CGEN_BFD_ARCH;
-
- /* There's no standard way to compute the isa number (e.g. for arm thumb)
+
+ /* There's no standard way to compute the machine or isa number
so we leave it to the target. */
+#ifdef CGEN_COMPUTE_MACH
+ mach = CGEN_COMPUTE_MACH (info);
+#else
+ mach = info->mach;
+#endif
+
#ifdef CGEN_COMPUTE_ISA
isa = CGEN_COMPUTE_ISA (info);
#else
isa = 0;
#endif
- mach = info->mach;
-
/* If we've switched cpu's, close the current table and open a new one. */
if (cd
&& (isa != prev_isa
diff --git a/opcodes/m32r-opc.h b/opcodes/m32r-opc.h
index 68fad09f61f..f3eb13933ae 100644
--- a/opcodes/m32r-opc.h
+++ b/opcodes/m32r-opc.h
@@ -74,14 +74,14 @@ typedef enum cgen_insn_type {
, M32R_INSN_SUBV, M32R_INSN_SUBX, M32R_INSN_TRAP, M32R_INSN_UNLOCK
, M32R_INSN_SATB, M32R_INSN_SATH, M32R_INSN_SAT, M32R_INSN_PCMPBZ
, M32R_INSN_SADD, M32R_INSN_MACWU1, M32R_INSN_MSBLO, M32R_INSN_MULWU1
- , M32R_INSN_MACLH1, M32R_INSN_SC, M32R_INSN_SNC, M32R_INSN_MAX
+ , M32R_INSN_MACLH1, M32R_INSN_SC, M32R_INSN_SNC
} CGEN_INSN_TYPE;
/* Index of `invalid' insn place holder. */
#define CGEN_INSN_INVALID M32R_INSN_INVALID
/* Total number of insns in table. */
-#define MAX_INSNS ((int) M32R_INSN_MAX)
+#define MAX_INSNS ((int) M32R_INSN_SNC + 1)
/* This struct records data prior to insertion or after extraction. */
struct cgen_fields
diff --git a/opcodes/m32r-opinst.c b/opcodes/m32r-opinst.c
index 5dbcd12aff7..55e7e4fed44 100644
--- a/opcodes/m32r-opinst.c
+++ b/opcodes/m32r-opinst.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of the GNU Binutils and/or GDB, the GNU debugger.