/* Select disassembly routine for specified architecture.
- Copyright (C) 1994-2017 Free Software Foundation, Inc.
+ Copyright (C) 1994-2019 Free Software Foundation, Inc.
This file is part of the GNU opcodes library.
#define ARCH_cr16
#define ARCH_cris
#define ARCH_crx
+#define ARCH_csky
#define ARCH_d10v
#define ARCH_d30v
#define ARCH_dlx
+#define ARCH_bpf
#define ARCH_epiphany
#define ARCH_fr30
#define ARCH_frv
#define ARCH_ft32
#define ARCH_h8300
-#define ARCH_h8500
#define ARCH_hppa
-#define ARCH_i370
#define ARCH_i386
-#define ARCH_i860
-#define ARCH_i960
#define ARCH_ia64
#define ARCH_ip2k
#define ARCH_iq2000
#define ARCH_m68hc11
#define ARCH_m68hc12
#define ARCH_m68k
-#define ARCH_m88k
#define ARCH_mcore
#define ARCH_mep
#define ARCH_metag
#define ARCH_mt
#define ARCH_msp430
#define ARCH_nds32
+#define ARCH_nfp
#define ARCH_nios2
#define ARCH_ns32k
#define ARCH_or1k
#define ARCH_pj
#define ARCH_powerpc
#define ARCH_pru
+#define ARCH_riscv
#define ARCH_rs6000
#define ARCH_rl78
#define ARCH_rx
+#define ARCH_s12z
#define ARCH_s390
#define ARCH_score
#define ARCH_sh
#define ARCH_v850
#define ARCH_vax
#define ARCH_visium
-#define ARCH_w65
#define ARCH_wasm32
#define ARCH_xstormy16
#define ARCH_xc16x
#define ARCH_xtensa
#define ARCH_z80
#define ARCH_z8k
-#define INCLUDE_SHMEDIA
#endif
#ifdef ARCH_m32c
#include "m32c-desc.h"
#endif
+#ifdef ARCH_bpf
+/* XXX this should be including bpf-desc.h instead of this hackery,
+ but at the moment it is not possible to include several CGEN
+ generated *-desc.h files simultaneously. To be fixed in
+ CGEN... */
+
+# ifdef ARCH_m32c
+enum epbf_isa_attr
+{
+ ISA_EBPFLE, ISA_EBPFBE, ISA_EBPFMAX
+};
+# else
+# include "bpf-desc.h"
+# define ISA_EBPFMAX ISA_MAX
+# endif
+#endif /* ARCH_bpf */
+
disassembler_ftype
disassembler (enum bfd_architecture a,
bfd_boolean big ATTRIBUTE_UNUSED,
disassemble = print_insn_crx;
break;
#endif
+#ifdef ARCH_csky
+ case bfd_arch_csky:
+ disassemble = csky_get_disassembler (abfd);
+ break;
+#endif
+
#ifdef ARCH_d10v
case bfd_arch_d10v:
disassemble = print_insn_d10v;
disassemble = print_insn_h8300;
break;
#endif
-#ifdef ARCH_h8500
- case bfd_arch_h8500:
- disassemble = print_insn_h8500;
- break;
-#endif
#ifdef ARCH_hppa
case bfd_arch_hppa:
disassemble = print_insn_hppa;
break;
#endif
-#ifdef ARCH_i370
- case bfd_arch_i370:
- disassemble = print_insn_i370;
- break;
-#endif
#ifdef ARCH_i386
case bfd_arch_i386:
case bfd_arch_iamcu:
disassemble = print_insn_i386;
break;
#endif
-#ifdef ARCH_i860
- case bfd_arch_i860:
- disassemble = print_insn_i860;
- break;
-#endif
-#ifdef ARCH_i960
- case bfd_arch_i960:
- disassemble = print_insn_i960;
- break;
-#endif
#ifdef ARCH_ia64
case bfd_arch_ia64:
disassemble = print_insn_ia64;
disassemble = print_insn_ip2k;
break;
#endif
+#ifdef ARCH_bpf
+ case bfd_arch_bpf:
+ disassemble = print_insn_bpf;
+ break;
+#endif
#ifdef ARCH_epiphany
case bfd_arch_epiphany:
disassemble = print_insn_epiphany;
disassemble = print_insn_m9s12xg;
break;
#endif
+#if defined(ARCH_s12z)
+ case bfd_arch_s12z:
+ disassemble = print_insn_s12z;
+ break;
+#endif
#ifdef ARCH_m68k
case bfd_arch_m68k:
disassemble = print_insn_m68k;
break;
#endif
-#ifdef ARCH_m88k
- case bfd_arch_m88k:
- disassemble = print_insn_m88k;
- break;
-#endif
#ifdef ARCH_mt
case bfd_arch_mt:
disassemble = print_insn_mt;
disassemble = print_insn_nds32;
break;
#endif
+#ifdef ARCH_nfp
+ case bfd_arch_nfp:
+ disassemble = print_insn_nfp;
+ break;
+#endif
#ifdef ARCH_ns32k
case bfd_arch_ns32k:
disassemble = print_insn_ns32k;
#endif
#ifdef ARCH_powerpc
case bfd_arch_powerpc:
+#endif
+#ifdef ARCH_rs6000
+ case bfd_arch_rs6000:
+#endif
+#if defined ARCH_powerpc || defined ARCH_rs6000
if (big)
disassemble = print_insn_big_powerpc;
else
disassemble = print_insn_riscv;
break;
#endif
-#ifdef ARCH_rs6000
- case bfd_arch_rs6000:
- if (mach == bfd_mach_ppc_620)
- disassemble = print_insn_big_powerpc;
- else
- disassemble = print_insn_rs6000;
- break;
-#endif
#ifdef ARCH_rl78
case bfd_arch_rl78:
disassemble = rl78_get_disassembler (abfd);
disassemble = print_insn_v850;
break;
#endif
-#ifdef ARCH_w65
- case bfd_arch_w65:
- disassemble = print_insn_w65;
- break;
-#endif
#ifdef ARCH_wasm32
case bfd_arch_wasm32:
disassemble = print_insn_wasm32;
#ifdef ARCH_mips
print_mips_disassembler_options (stream);
#endif
+#ifdef ARCH_nfp
+ print_nfp_disassembler_options (stream);
+#endif
#ifdef ARCH_powerpc
print_ppc_disassembler_options (stream);
#endif
info->disassembler_needs_relocs = TRUE;
break;
#endif
+#ifdef ARCH_csky
+ case bfd_arch_csky:
+ info->symbol_is_valid = csky_symbol_is_valid;
+ info->disassembler_needs_relocs = TRUE;
+ break;
+#endif
+
#ifdef ARCH_ia64
case bfd_arch_ia64:
info->skip_zeroes = 16;
}
break;
#endif
+#ifdef ARCH_bpf
+ case bfd_arch_bpf:
+ if (!info->insn_sets)
+ {
+ info->insn_sets = cgen_bitset_create (ISA_EBPFMAX);
+ if (info->endian == BFD_ENDIAN_BIG)
+ cgen_bitset_set (info->insn_sets, ISA_EBPFBE);
+ else
+ cgen_bitset_set (info->insn_sets, ISA_EBPFLE);
+ }
+ break;
+#endif
+#ifdef ARCH_pru
+ case bfd_arch_pru:
+ info->disassembler_needs_relocs = TRUE;
+ break;
+#endif
#ifdef ARCH_powerpc
case bfd_arch_powerpc:
#endif
disassemble_init_powerpc (info);
break;
#endif
+#ifdef ARCH_riscv
+ case bfd_arch_riscv:
+ info->symbol_is_valid = riscv_symbol_is_valid;
+ break;
+#endif
#ifdef ARCH_wasm32
case bfd_arch_wasm32:
disassemble_init_wasm32 (info);
disassemble_init_s390 (info);
break;
#endif
+#ifdef ARCH_nds32
+ case bfd_arch_nds32:
+ disassemble_init_nds32 (info);
+ break;
+ #endif
default:
break;
}