* opcodes disassembler extension
authorFrank Ch. Eigler <fche@redhat.com>
Tue, 5 Feb 2002 19:40:45 +0000 (19:40 +0000)
committerFrank Ch. Eigler <fche@redhat.com>
Tue, 5 Feb 2002 19:40:45 +0000 (19:40 +0000)
[includes]
2002-02-04  Frank Ch. Eigler  <fche@redhat.com>

* dis-asm.h (disassemble_info): New field `insn_sets'.
(INIT_DISASSEMBLE_INFO): Clear it.

[opcodes]
2002-02-04  Frank Ch. Eigler  <fche@redhat.com>

* cgen-dis.in (print_insn_@arch@): Support disassemble_info.insn_sets.

include/ChangeLog
include/dis-asm.h
opcodes/ChangeLog
opcodes/cgen-dis.in

index 9ac65a0..e482f97 100644 (file)
@@ -1,3 +1,8 @@
+2002-02-05  Frank Ch. Eigler  <fche@redhat.com>
+
+       * dis-asm.h (disassemble_info): New field `insn_sets'.
+       (INIT_DISASSEMBLE_INFO): Clear it.
+
 2002-02-05  Jason Merrill  <jason@redhat.com>
 
        * demangle.h (cplus_demangle_v3): Add "options" parm.
index 8cd848d..5b9e390 100644 (file)
@@ -73,6 +73,11 @@ typedef struct disassemble_info {
   unsigned long mach;
   /* Endianness (for bi-endian cpus).  Mono-endian cpus can ignore this.  */
   enum bfd_endian endian;
+  /* An arch/mach-specific bitmask of selected instruction subsets, mainly
+     for processors with run-time-switchable instruction sets.  The default,
+     zero, means that there is no constraint.  CGEN-based opcodes ports
+     may use ISA_foo masks.  */
+  unsigned long insn_sets;
 
   /* Some targets need information about the current section to accurately
      display insns.  If this is NULL, the target disassembler function
@@ -275,6 +280,7 @@ extern int generic_symbol_at_address
   (INFO).flavour = bfd_target_unknown_flavour, \
   (INFO).arch = bfd_arch_unknown, \
   (INFO).mach = 0, \
+  (INFO).insn_sets = 0, \
   (INFO).endian = BFD_ENDIAN_UNKNOWN, \
   (INFO).octets_per_byte = 1, \
   INIT_DISASSEMBLE_INFO_NO_ARCH(INFO, STREAM, FPRINTF_FUNC)
index 3230a49..7454484 100644 (file)
@@ -1,3 +1,7 @@
+2002-02-04  Frank Ch. Eigler  <fche@redhat.com>
+
+       * cgen-dis.in (print_insn_@arch@): Support disassemble_info.insn_sets.
+
 2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
 
        * sh-opc.h (sh_arg_type): Added A_DISP_PC_ABS.
index f2c9dd5..c78723e 100644 (file)
@@ -386,7 +386,7 @@ print_insn_@arch@ (pc, info)
 #ifdef CGEN_COMPUTE_ISA
   isa = CGEN_COMPUTE_ISA (info);
 #else
-  isa = 0;
+  isa = info->insn_sets;
 #endif
 
   /* If we've switched cpu's, close the current table and open a new one.  */