summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2018-04-16 15:26:05 +0930
committerAlan Modra <amodra@gmail.com>2018-04-16 15:26:05 +0930
commita9a4b30244006a0087c5a7bf73cbb13927f1d9f1 (patch)
treec3822fe01e204e7ad80a57e92afc0d103b390605
parent04cb01fd5a3bc167ae26486bbc2bf941e96ad805 (diff)
downloadbinutils-gdb-a9a4b30244006a0087c5a7bf73cbb13927f1d9f1.tar.gz
Remove w65 support
include/ * coff/internal.h: Remove w65 support. * coff/w65.h: Delete. bfd/ * Makefile.am: Remove w65 support. * archures.c: Likewise. * coffcode.h: Likewise. * config.bfd: Likewise. * configure.ac: Likewise. * targets.c: Likewise. * coff-w65.c: Delete. * cpu-w65.c: Delete. * Makefile.in: Regenerate. * bfd-in2.h: Regenerate. * configure: Regenerate. * po/SRC-POTFILES.in: Regenerate. opcodes/ * Makefile.am: Remove w65 support. * configure.ac: Likewise. * disassemble.c: Likewise. * disassemble.h: Likewise. * w65-dis.c: Delete. * w65-opc.h: Delete. * Makefile.in: Regenerate. * configure: Regenerate. * po/POTFILES.in: Regenerate. binutils/ * testsuite/binutils-all/objcopy.exp: Remove w65 support. ld/ * Makefile.am: Remove w65 support. * configure.tgt: Likewise. * emulparams/w65.sh: Delete. * scripttempl/w65.sc: Delete. * Makefile.in: Regenerate. * po/BLD-POTFILES.in: Regenerate.
-rw-r--r--bfd/ChangeLog15
-rw-r--r--bfd/Makefile.am4
-rw-r--r--bfd/Makefile.in6
-rw-r--r--bfd/archures.c3
-rw-r--r--bfd/bfd-in2.h1
-rw-r--r--bfd/coff-w65.c375
-rw-r--r--bfd/coffcode.h12
-rw-r--r--bfd/config.bfd6
-rwxr-xr-xbfd/configure1
-rw-r--r--bfd/configure.ac1
-rw-r--r--bfd/cpu-w65.c52
-rw-r--r--bfd/po/SRC-POTFILES.in2
-rw-r--r--bfd/targets.c3
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp2
-rw-r--r--include/ChangeLog5
-rw-r--r--include/coff/internal.h17
-rw-r--r--include/coff/w65.h47
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/Makefile.am4
-rw-r--r--ld/Makefile.in5
-rw-r--r--ld/configure.tgt2
-rw-r--r--ld/emulparams/w65.sh5
-rw-r--r--ld/po/BLD-POTFILES.in1
-rw-r--r--ld/scripttempl/w65.sc77
-rw-r--r--opcodes/ChangeLog12
-rw-r--r--opcodes/Makefile.am2
-rw-r--r--opcodes/Makefile.in3
-rwxr-xr-xopcodes/configure1
-rw-r--r--opcodes/configure.ac1
-rw-r--r--opcodes/disassemble.c6
-rw-r--r--opcodes/disassemble.h1
-rw-r--r--opcodes/po/POTFILES.in2
-rw-r--r--opcodes/w65-dis.c98
-rw-r--r--opcodes/w65-opc.h568
35 files changed, 47 insertions, 1306 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 4e81da9212a..95e37e7f8f6 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,20 @@
2018-04-16 Alan Modra <amodra@gmail.com>
+ * Makefile.am: Remove w65 support.
+ * archures.c: Likewise.
+ * coffcode.h: Likewise.
+ * config.bfd: Likewise.
+ * configure.ac: Likewise.
+ * targets.c: Likewise.
+ * coff-w65.c: Delete.
+ * cpu-w65.c: Delete.
+ * Makefile.in: Regenerate.
+ * bfd-in2.h: Regenerate.
+ * configure: Regenerate.
+ * po/SRC-POTFILES.in: Regenerate.
+
+2018-04-16 Alan Modra <amodra@gmail.com>
+
* Makefile.am: Remove we32k support.
* archures.c: Likewise.
* coffcode.h: Likewise.
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 9a097b1b48e..14d4ecadc86 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -163,7 +163,6 @@ ALL_MACHINES = \
cpu-v850_rh850.lo \
cpu-vax.lo \
cpu-visium.lo \
- cpu-w65.lo \
cpu-wasm32.lo \
cpu-xc16x.lo \
cpu-xgate.lo \
@@ -248,7 +247,6 @@ ALL_MACHINES_CFILES = \
cpu-vax.c \
cpu-visium.c \
cpu-wasm32.c \
- cpu-w65.c \
cpu-xc16x.c \
cpu-xgate.c \
cpu-xstormy16.c \
@@ -286,7 +284,6 @@ BFD32_BACKENDS = \
coff-tic54x.lo \
coff-tic80.lo \
coff-u68k.lo \
- coff-w65.lo \
coff-z80.lo \
coff-z8k.lo \
coffgen.lo \
@@ -462,7 +459,6 @@ BFD32_BACKENDS_CFILES = \
coff-tic54x.c \
coff-tic80.c \
coff-u68k.c \
- coff-w65.c \
coff-z80.c \
coff-z8k.c \
coffgen.c \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index fe87949b343..0c8c604804b 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -496,7 +496,6 @@ ALL_MACHINES = \
cpu-v850_rh850.lo \
cpu-vax.lo \
cpu-visium.lo \
- cpu-w65.lo \
cpu-wasm32.lo \
cpu-xc16x.lo \
cpu-xgate.lo \
@@ -581,7 +580,6 @@ ALL_MACHINES_CFILES = \
cpu-vax.c \
cpu-visium.c \
cpu-wasm32.c \
- cpu-w65.c \
cpu-xc16x.c \
cpu-xgate.c \
cpu-xstormy16.c \
@@ -620,7 +618,6 @@ BFD32_BACKENDS = \
coff-tic54x.lo \
coff-tic80.lo \
coff-u68k.lo \
- coff-w65.lo \
coff-z80.lo \
coff-z8k.lo \
coffgen.lo \
@@ -796,7 +793,6 @@ BFD32_BACKENDS_CFILES = \
coff-tic54x.c \
coff-tic80.c \
coff-u68k.c \
- coff-w65.c \
coff-z80.c \
coff-z8k.c \
coffgen.c \
@@ -1303,7 +1299,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-tic54x.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-tic80.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-u68k.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-w65.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-x86_64.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-z80.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-z8k.Plo@am__quote@
@@ -1386,7 +1381,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-v850_rh850.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-vax.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-visium.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-w65.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-wasm32.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-xc16x.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-xgate.Plo@am__quote@
diff --git a/bfd/archures.c b/bfd/archures.c
index 1c5bfdf8f28..5adfc2fa6c5 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -332,7 +332,6 @@ DESCRIPTION
.#define bfd_mach_n1h_v3 4
.#define bfd_mach_n1h_v3m 5
. bfd_arch_ns32k, {* National Semiconductors ns32000. *}
-. bfd_arch_w65, {* WDC 65816. *}
. bfd_arch_tic30, {* Texas Instruments TMS320C30. *}
. bfd_arch_tic4x, {* Texas Instruments TMS320C3X/4X. *}
.#define bfd_mach_tic3x 30
@@ -633,7 +632,6 @@ extern const bfd_arch_info_type bfd_v850_rh850_arch;
extern const bfd_arch_info_type bfd_vax_arch;
extern const bfd_arch_info_type bfd_visium_arch;
extern const bfd_arch_info_type bfd_wasm32_arch;
-extern const bfd_arch_info_type bfd_w65_arch;
extern const bfd_arch_info_type bfd_xstormy16_arch;
extern const bfd_arch_info_type bfd_xtensa_arch;
extern const bfd_arch_info_type bfd_xc16x_arch;
@@ -718,7 +716,6 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
&bfd_v850_rh850_arch,
&bfd_vax_arch,
&bfd_visium_arch,
- &bfd_w65_arch,
&bfd_wasm32_arch,
&bfd_xstormy16_arch,
&bfd_xtensa_arch,
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 9ebe62876f1..bbbdf016751 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2207,7 +2207,6 @@ enum bfd_architecture
#define bfd_mach_n1h_v3 4
#define bfd_mach_n1h_v3m 5
bfd_arch_ns32k, /* National Semiconductors ns32000. */
- bfd_arch_w65, /* WDC 65816. */
bfd_arch_tic30, /* Texas Instruments TMS320C30. */
bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X. */
#define bfd_mach_tic3x 30
diff --git a/bfd/coff-w65.c b/bfd/coff-w65.c
deleted file mode 100644
index 68b2c94ddbd..00000000000
--- a/bfd/coff-w65.c
+++ /dev/null
@@ -1,375 +0,0 @@
-/* BFD back-end for WDC 65816 COFF binaries.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
- Written by Steve Chamberlain, <sac@cygnus.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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "libbfd.h"
-#include "bfdlink.h"
-#include "coff/w65.h"
-#include "coff/internal.h"
-#include "libcoff.h"
-
-#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1)
-static reloc_howto_type howto_table[] =
-{
- HOWTO (R_W65_ABS8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "abs8", TRUE, 0x000000ff, 0x000000ff, FALSE),
- HOWTO (R_W65_ABS16, 1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, "abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
- HOWTO (R_W65_ABS24, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "abs24", TRUE, 0x00ffffff, 0x00ffffff, FALSE),
- HOWTO (R_W65_ABS8S8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, ">abs8", TRUE, 0x000000ff, 0x000000ff, FALSE),
- HOWTO (R_W65_ABS8S16, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "^abs8", TRUE, 0x000000ff, 0x000000ff, FALSE),
- HOWTO (R_W65_ABS16S8, 1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, ">abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
- HOWTO (R_W65_ABS16S16,1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, "^abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE),
- HOWTO (R_W65_PCR8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "pcrel8", TRUE, 0x000000ff, 0x000000ff, TRUE),
- HOWTO (R_W65_PCR16, 1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, "pcrel16", TRUE, 0x0000ffff, 0x0000ffff, TRUE),
- HOWTO (R_W65_DP, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "dp", TRUE, 0x000000ff, 0x000000ff, FALSE),
-};
-
-#define NUM_HOWTOS (sizeof (howto_table) / sizeof (howto_table[0]))
-
-/* Turn a howto into a reloc number. */
-
-#define SELECT_RELOC(x,howto) \
- { x.r_type = select_reloc(howto); }
-
-#define BADMAG(x) (W65BADMAG(x))
-#define W65 1 /* Customize coffcode.h */
-#define __A_MAGIC_SET__
-
-/* Code to swap in the reloc */
-#define SWAP_IN_RELOC_OFFSET H_GET_32
-#define SWAP_OUT_RELOC_OFFSET H_PUT_32
-#define SWAP_OUT_RELOC_EXTRA(abfd, src, dst) \
- dst->r_stuff[0] = 'S'; \
- dst->r_stuff[1] = 'C';
-
-static int
-select_reloc (reloc_howto_type *howto)
-{
- return howto->type;
-}
-
-/* Code to turn a r_type into a howto ptr, uses the above howto table. */
-
-static void
-rtype2howto (arelent *internal,
- struct internal_reloc *dst)
-{
- if (dst->r_type > 0 && dst->r_type <= NUM_HOWTOS)
- internal->howto = howto_table + dst->r_type - 1;
- else
- internal->howto = NULL;
-}
-
-#define RTYPE2HOWTO(internal, relocentry) rtype2howto(internal,relocentry)
-
-/* Perform any necessary magic to the addend in a reloc entry. */
-
-#define CALC_ADDEND(abfd, symbol, ext_reloc, cache_ptr) \
- cache_ptr->addend = ext_reloc.r_offset;
-
-#define RELOC_PROCESSING(relent,reloc,symbols,abfd,section) \
- reloc_processing(relent, reloc, symbols, abfd, section)
-
-static void
-reloc_processing (arelent * relent,
- struct internal_reloc *reloc,
- asymbol ** symbols,
- bfd * abfd,
- asection * section)
-{
- relent->address = reloc->r_vaddr;
- rtype2howto (relent, reloc);
-
- if (((int) reloc->r_symndx) > 0)
- relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx];
- else
- relent->sym_ptr_ptr = (asymbol **) bfd_abs_section_ptr->symbol_ptr_ptr;
-
- relent->addend = reloc->r_offset;
-
- relent->address -= section->vma;
- /* relent->section = 0;*/
-}
-
-static int
-w65_reloc16_estimate (bfd *abfd,
- asection *input_section,
- arelent *reloc,
- unsigned int shrink,
- struct bfd_link_info *link_info)
-{
- bfd_vma value;
- bfd_vma dot;
- bfd_vma gap;
-
- /* The address of the thing to be relocated will have moved back by
- the size of the shrink - but we don't change reloc->address here,
- since we need it to know where the relocation lives in the source
- uncooked section. */
-
- /* reloc->address -= shrink; conceptual */
-
- bfd_vma address = reloc->address - shrink;
-
- switch (reloc->howto->type)
- {
- case R_MOV16B2:
- case R_JMP2:
- shrink+=2;
- break;
-
- /* Thing is a move one byte. */
- case R_MOV16B1:
- value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
-
- if (value >= 0xff00)
- {
- /* Change the reloc type from 16bit, possible 8 to 8bit
- possible 16. */
- reloc->howto = reloc->howto + 1;
- /* The place to relc moves back by one. */
- /* This will be two bytes smaller in the long run. */
- shrink += 2;
- bfd_perform_slip (abfd, 2, input_section, address);
- }
-
- break;
- /* This is the 24 bit branch which could become an 8 bitter,
- the relocation points to the first byte of the insn, not the
- actual data. */
-
- case R_JMPL1:
- value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
-
- dot = input_section->output_section->vma +
- input_section->output_offset + address;
-
- /* See if the address we're looking at within 127 bytes of where
- we are, if so then we can use a small branch rather than the
- jump we were going to. */
- gap = value - dot;
-
- if (-120 < (long) gap && (long) gap < 120)
- {
- /* Change the reloc type from 24bit, possible 8 to 8bit
- possible 32. */
- reloc->howto = reloc->howto + 1;
- /* This will be two bytes smaller in the long run. */
- shrink += 2;
- bfd_perform_slip (abfd, 2, input_section, address);
- }
- break;
-
- case R_JMP1:
- value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
-
- dot = input_section->output_section->vma +
- input_section->output_offset + address;
-
- /* See if the address we're looking at within 127 bytes of where
- we are, if so then we can use a small branch rather than the
- jump we were going to. */
- gap = value - (dot - shrink);
-
- if (-120 < (long) gap && (long) gap < 120)
- {
- /* Change the reloc type from 16bit, possible 8 to 8bit
- possible 16. */
- reloc->howto = reloc->howto + 1;
- /* The place to relc moves back by one. */
-
- /* This will be two bytes smaller in the long run. */
- shrink += 2;
- bfd_perform_slip (abfd, 2, input_section, address);
- }
- break;
- }
-
- return shrink;
-}
-
-/* First phase of a relaxing link. */
-
-/* Reloc types
- large small
- R_MOV16B1 R_MOV16B2 mov.b with 16bit or 8 bit address
- R_JMP1 R_JMP2 jmp or pcrel branch
- R_JMPL1 R_JMPL_B8 24jmp or pcrel branch
- R_MOV24B1 R_MOV24B2 24 or 8 bit reloc for mov.b */
-
-static void
-w65_reloc16_extra_cases (bfd *abfd,
- struct bfd_link_info *link_info,
- struct bfd_link_order *link_order,
- arelent *reloc,
- bfd_byte *data,
- unsigned int *src_ptr,
- unsigned int *dst_ptr)
-{
- unsigned int src_address = *src_ptr;
- unsigned int dst_address = *dst_ptr;
- asection *input_section = link_order->u.indirect.section;
-
- switch (reloc->howto->type)
- {
- case R_W65_ABS8:
- case R_W65_DP:
- {
- unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info,
- input_section);
- bfd_put_8 (abfd, gap, data + dst_address);
- dst_address += 1;
- src_address += 1;
- }
- break;
-
- case R_W65_ABS8S8:
- {
- unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info,
- input_section);
- gap >>= 8;
- bfd_put_8 (abfd, gap, data + dst_address);
- dst_address += 1;
- src_address += 1;
- }
- break;
-
- case R_W65_ABS8S16:
- {
- unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info,
- input_section);
- gap >>= 16;
- bfd_put_8 (abfd, gap, data + dst_address);
- dst_address += 1;
- src_address += 1;
- }
- break;
-
- case R_W65_ABS16:
- {
- unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info,
- input_section);
-
- bfd_put_16 (abfd, (bfd_vma) gap, data + dst_address);
- dst_address += 2;
- src_address += 2;
- }
- break;
- case R_W65_ABS16S8:
- {
- unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info,
- input_section);
- gap >>= 8;
- bfd_put_16 (abfd, (bfd_vma) gap, data + dst_address);
- dst_address += 2;
- src_address += 2;
- }
- break;
- case R_W65_ABS16S16:
- {
- unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info,
- input_section);
- gap >>= 16;
- bfd_put_16 (abfd, (bfd_vma) gap, data + dst_address);
- dst_address += 2;
- src_address += 2;
- }
- break;
-
- case R_W65_ABS24:
- {
- unsigned int gap = bfd_coff_reloc16_get_value (reloc, link_info,
- input_section);
- bfd_put_16 (abfd, (bfd_vma) gap, data + dst_address);
- bfd_put_8 (abfd, gap >> 16, data+dst_address + 2);
- dst_address += 3;
- src_address += 3;
- }
- break;
-
- case R_W65_PCR8:
- {
- int gap = bfd_coff_reloc16_get_value (reloc, link_info,
- input_section);
- bfd_vma dot = (dst_address
- + input_section->output_offset
- + input_section->output_section->vma);
-
- gap -= dot + 1;
- if (gap < -128 || gap > 127)
- (*link_info->callbacks->reloc_overflow)
- (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr),
- reloc->howto->name, reloc->addend, input_section->owner,
- input_section, reloc->address);
-
- bfd_put_8 (abfd, gap, data + dst_address);
- dst_address += 1;
- src_address += 1;
- }
- break;
-
- case R_W65_PCR16:
- {
- bfd_vma gap = bfd_coff_reloc16_get_value (reloc, link_info,
- input_section);
- bfd_vma dot = (dst_address
- + input_section->output_offset
- + input_section->output_section->vma);
-
- /* This wraps within the page, so ignore the relativeness, look at the
- high part. */
- if ((gap & 0xf0000) != (dot & 0xf0000))
- (*link_info->callbacks->reloc_overflow)
- (link_info, NULL, bfd_asymbol_name (*reloc->sym_ptr_ptr),
- reloc->howto->name, reloc->addend, input_section->owner,
- input_section, reloc->address);
-
- gap -= dot + 2;
- bfd_put_16 (abfd, gap, data + dst_address);
- dst_address += 2;
- src_address += 2;
- }
- break;
- default:
- _bfd_error_handler (_("%pB: %s unsupported"), abfd, reloc->howto->name);
- break;
-
- }
- *src_ptr = src_address;
- *dst_ptr = dst_address;
-}
-
-#define coff_reloc16_extra_cases w65_reloc16_extra_cases
-#define coff_reloc16_estimate w65_reloc16_estimate
-
-#ifndef bfd_pe_print_pdata
-#define bfd_pe_print_pdata NULL
-#endif
-
-#include "coffcode.h"
-
-#undef coff_bfd_get_relocated_section_contents
-#undef coff_bfd_relax_section
-#define coff_bfd_get_relocated_section_contents \
- bfd_coff_reloc16_get_relocated_section_contents
-#define coff_bfd_relax_section bfd_coff_reloc16_relax_section
-
-CREATE_LITTLE_COFF_TARGET_VEC (w65_coff_vec, "coff-w65", BFD_IS_RELAXABLE, 0, '_', NULL, COFF_SWAP_TABLE)
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 12c84c4a047..867485028e4 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -2347,12 +2347,6 @@ coff_set_arch_mach_hook (bfd *abfd, void * filehdr)
break;
#endif
-#ifdef W65MAGIC
- case W65MAGIC:
- arch = bfd_arch_w65;
- break;
-#endif
-
default: /* Unreadable input file type. */
arch = bfd_arch_obscure;
break;
@@ -2862,12 +2856,6 @@ coff_set_flags (bfd * abfd,
return TRUE;
#endif
-#ifdef W65MAGIC
- case bfd_arch_w65:
- *magicp = W65MAGIC;
- return TRUE;
-#endif
-
default: /* Unknown architecture. */
/* Fall through to "return FALSE" below, to avoid
"statement never reached" errors on the one below. */
diff --git a/bfd/config.bfd b/bfd/config.bfd
index a0c1c10460f..ae15c9f41d6 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -104,7 +104,6 @@ case $targ in
sparc64-*-aout* | \
sparc*-*-coff* | \
vax-*-bsd* | vax-*-ultrix* | \
- w65-*-* | \
sh5*-*-* | sh64*-*-* | \
null)
if test "x$enable_obsolete" != xyes; then
@@ -143,6 +142,7 @@ case $targ in
sparc-*-lynxos* | \
tahoe-*-* | \
vax-*-vms* | \
+ w65-*-* | \
we32k-*-* | \
null)
echo "*** Configuration $targ is obsolete." >&2
@@ -1723,10 +1723,6 @@ case "${targ}" in
targ_selvecs="wasm_vec"
;;
- w65-*-*)
- targ_defvec=w65_coff_vec
- ;;
-
xgate-*-*)
targ_defvec=xgate_elf32_vec
targ_selvecs="xgate_elf32_vec"
diff --git a/bfd/configure b/bfd/configure
index c8d6b21bcae..210dbcc9ccd 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -14625,7 +14625,6 @@ do
vax_elf32_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;;
ft32_elf32_vec) tb="$tb elf32-ft32.lo elf32.lo $elf" ;;
visium_elf32_vec) tb="$tb elf32-visium.lo elf32.lo $elf" ;;
- w65_coff_vec) tb="$tb coff-w65.lo reloc16.lo $coffgen" ;;
wasm_vec) tb="$tb wasm-module.lo" ;;
wasm32_elf32_vec) tb="$tb elf32-wasm32.lo elf32.lo $elf" ;;
x86_64_coff_vec) tb="$tb coff-x86_64.lo $coff"; target_size=64 ;;
diff --git a/bfd/configure.ac b/bfd/configure.ac
index 5b5bfc1ea7d..f75dbf9395c 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -702,7 +702,6 @@ do
vax_elf32_vec) tb="$tb elf32-vax.lo elf32.lo $elf" ;;
ft32_elf32_vec) tb="$tb elf32-ft32.lo elf32.lo $elf" ;;
visium_elf32_vec) tb="$tb elf32-visium.lo elf32.lo $elf" ;;
- w65_coff_vec) tb="$tb coff-w65.lo reloc16.lo $coffgen" ;;
wasm_vec) tb="$tb wasm-module.lo" ;;
wasm32_elf32_vec) tb="$tb elf32-wasm32.lo elf32.lo $elf" ;;
x86_64_coff_vec) tb="$tb coff-x86_64.lo $coff"; target_size=64 ;;
diff --git a/bfd/cpu-w65.c b/bfd/cpu-w65.c
deleted file mode 100644
index fc99abc2ddf..00000000000
--- a/bfd/cpu-w65.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* BFD library support routines for the WDC 65816 architecture.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
- Hacked by Steve Chamberlain of Cygnus Support.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#include "sysdep.h"
-#include "bfd.h"
-#include "libbfd.h"
-
-static bfd_boolean
-scan_mach (const struct bfd_arch_info *info ATTRIBUTE_UNUSED,
- const char *string)
-{
- if (strcmp(string,"w65") == 0)
- return TRUE;
- if (strcmp(string,"w65816") == 0)
- return TRUE;
- return FALSE;
-}
-
-const bfd_arch_info_type bfd_w65_arch =
-{
- 16, /* 16 bits in a word */
- 24, /* 24 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_w65,
- 0, /* only 1 machine */
- "w65", /* arch_name */
- "w65", /* printable name */
- 1,
- TRUE, /* the default machine */
- bfd_default_compatible,
- scan_mach,
- bfd_arch_default_fill,
- 0,
-};
diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in
index b6007b5dabd..c52c3d4f80c 100644
--- a/bfd/po/SRC-POTFILES.in
+++ b/bfd/po/SRC-POTFILES.in
@@ -42,7 +42,6 @@ coff-tic4x.c
coff-tic54x.c
coff-tic80.c
coff-u68k.c
-coff-w65.c
coff-x86_64.c
coff-z80.c
coff-z8k.c
@@ -127,7 +126,6 @@ cpu-v850.c
cpu-v850_rh850.c
cpu-vax.c
cpu-visium.c
-cpu-w65.c
cpu-wasm32.c
cpu-xc16x.c
cpu-xgate.c
diff --git a/bfd/targets.c b/bfd/targets.c
index 4ba96525f39..a8413cbbc2b 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -883,7 +883,6 @@ extern const bfd_target vax_aout_bsd_vec;
extern const bfd_target vax_aout_nbsd_vec;
extern const bfd_target vax_elf32_vec;
extern const bfd_target visium_elf32_vec;
-extern const bfd_target w65_coff_vec;
extern const bfd_target wasm_vec;
extern const bfd_target wasm32_elf32_vec;
extern const bfd_target x86_64_coff_vec;
@@ -1382,8 +1381,6 @@ static const bfd_target * const _bfd_target_vector[] =
&visium_elf32_vec,
- &w65_coff_vec,
-
&wasm_vec,
&wasm32_elf32_vec,
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9ff778cd7d5..419d6bb0080 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,5 +1,9 @@
2018-04-16 Alan Modra <amodra@gmail.com>
+ * testsuite/binutils-all/objcopy.exp: Remove w65 support.
+
+2018-04-16 Alan Modra <amodra@gmail.com>
+
* testsuite/binutils-all/objdump.exp: Remove we32k support.
2018-04-16 Alan Modra <amodra@gmail.com>
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index 7ec02ddca94..81ec3ec0d4a 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -82,7 +82,7 @@ proc objcopy_test {testname srcfile} {
setup_xfail "m68*-*-sysv*" "m68*-apple-aux*"
setup_xfail "m8*-*"
setup_xfail "sh-*-coff*"
- setup_xfail "tic80-*-*" "w65-*"
+ setup_xfail "tic80-*-*"
clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*"
diff --git a/include/ChangeLog b/include/ChangeLog
index a5301c9fa73..204a512826b 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,5 +1,10 @@
2018-04-16 Alan Modra <amodra@gmail.com>
+ * coff/internal.h: Remove w65 support.
+ * coff/w65.h: Delete.
+
+2018-04-16 Alan Modra <amodra@gmail.com>
+
* coff/we32k.h: Delete.
2018-04-16 Alan Modra <amodra@gmail.com>
diff --git a/include/coff/internal.h b/include/coff/internal.h
index 47f2a549983..1879ddc0a04 100644
--- a/include/coff/internal.h
+++ b/include/coff/internal.h
@@ -809,21 +809,4 @@ struct internal_reloc
#define R_IMM24 0x33 /* 24 bit abs */
/* R_JR, R_IMM8, R_IMM16, R_IMM32 - as for Z8k */
-/* W65 modes */
-
-#define R_W65_ABS8 1 /* addr & 0xff */
-#define R_W65_ABS16 2 /* addr & 0xffff */
-#define R_W65_ABS24 3 /* addr & 0xffffff */
-
-#define R_W65_ABS8S8 4 /* (addr >> 8) & 0xff */
-#define R_W65_ABS8S16 5 /* (addr >> 16) & 0xff */
-
-#define R_W65_ABS16S8 6 /* (addr >> 8) & 0ffff */
-#define R_W65_ABS16S16 7 /* (addr >> 16) & 0ffff */
-
-#define R_W65_PCR8 8
-#define R_W65_PCR16 9
-
-#define R_W65_DP 10 /* direct page 8 bits only */
-
#endif /* GNU_COFF_INTERNAL_H */
diff --git a/include/coff/w65.h b/include/coff/w65.h
deleted file mode 100644
index f8401a57161..00000000000
--- a/include/coff/w65.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* coff information for WDC 65816
-
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
-
- 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define L_LNNO_SIZE 4
-#include "coff/external.h"
-
-#define W65MAGIC 0x6500
-
-#define W65BADMAG(x) (((x).f_magic != W65MAGIC))
-
-/********************** RELOCATION DIRECTIVES **********************/
-
-/* The external reloc has an offset field, because some of the reloc
- types on the w65 don't have room in the instruction for the entire
- offset - eg the strange jump and high page addressing modes */
-
-struct external_reloc
-{
- char r_vaddr[4];
- char r_symndx[4];
- char r_offset[4];
- char r_type[2];
- char r_stuff[2];
-};
-
-#define RELOC struct external_reloc
-#define RELSZ 16
-
-
-
-
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 91fb5152d38..221047bdd3f 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,14 @@
2018-04-16 Alan Modra <amodra@gmail.com>
+ * Makefile.am: Remove w65 support.
+ * configure.tgt: Likewise.
+ * emulparams/w65.sh: Delete.
+ * scripttempl/w65.sc: Delete.
+ * Makefile.in: Regenerate.
+ * po/BLD-POTFILES.in: Regenerate.
+
+2018-04-16 Alan Modra <amodra@gmail.com>
+
* Makefile.am: Remove m88k support.
* configure.host: Likewise.
* configure.tgt: Likewise.
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 39c84f4ad45..a45d8453413 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -407,7 +407,6 @@ ALL_EMULATION_SOURCES = \
evax.c \
evaxnbsd.c \
evsta.c \
- ew65.c \
exgateelf.c \
ez80.c \
ez8001.c \
@@ -1798,9 +1797,6 @@ evaxnbsd.c: $(srcdir)/emulparams/vaxnbsd.sh \
evsta.c: $(srcdir)/emulparams/vsta.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
-ew65.c: $(srcdir)/emulparams/w65.sh \
- $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/w65.sc ${GEN_DEPENDS}
-
exgateelf.c: $(srcdir)/emulparams/xgateelf.sh \
$(srcdir)/emultempl/generic.em $(ELF_DEPS) \
$(srcdir)/scripttempl/elfxgate.sc ${GEN_DEPENDS}
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 85d545c8f9e..8db42390349 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -776,7 +776,6 @@ ALL_EMULATION_SOURCES = \
evax.c \
evaxnbsd.c \
evsta.c \
- ew65.c \
exgateelf.c \
ez80.c \
ez8001.c \
@@ -1427,7 +1426,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evax.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evaxnbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evsta.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ew65.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exgateelf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez80.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ez8001.Po@am__quote@
@@ -3338,9 +3336,6 @@ evaxnbsd.c: $(srcdir)/emulparams/vaxnbsd.sh \
evsta.c: $(srcdir)/emulparams/vsta.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
-ew65.c: $(srcdir)/emulparams/w65.sh \
- $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/w65.sc ${GEN_DEPENDS}
-
exgateelf.c: $(srcdir)/emulparams/xgateelf.sh \
$(srcdir)/emultempl/generic.em $(ELF_DEPS) \
$(srcdir)/scripttempl/elfxgate.sc ${GEN_DEPENDS}
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 50da17ac3fe..30c6bf2a0d9 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -837,8 +837,6 @@ vax-*-linux-*) targ_emul=elf32vax
;;
visium-*-elf) targ_emul=elf32visium
;;
-w65-*-*) targ_emul=w65
- ;;
xc16x-*-elf) targ_emul=elf32xc16x
targ_extra_emuls="elf32xc16xl elf32xc16xs"
;;
diff --git a/ld/emulparams/w65.sh b/ld/emulparams/w65.sh
deleted file mode 100644
index 6f02b2326f5..00000000000
--- a/ld/emulparams/w65.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-SCRIPT_NAME=w65
-OUTPUT_FORMAT="coff-w65"
-TEXT_START_ADDR=0x1000
-TARGET_PAGE_SIZE=64
-ARCH=w65
diff --git a/ld/po/BLD-POTFILES.in b/ld/po/BLD-POTFILES.in
index 8c326ef96eb..37cdc31ad0e 100644
--- a/ld/po/BLD-POTFILES.in
+++ b/ld/po/BLD-POTFILES.in
@@ -329,7 +329,6 @@ evanilla.c
evax.c
evaxnbsd.c
evsta.c
-ew65.c
exgateelf.c
ez80.c
ez8001.c
diff --git a/ld/scripttempl/w65.sc b/ld/scripttempl/w65.sc
deleted file mode 100644
index 37a7b48ab4a..00000000000
--- a/ld/scripttempl/w65.sc
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright (C) 2014-2018 Free Software Foundation, Inc.
-#
-# Copying and distribution of this file, with or without modification,
-# are permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.
-
-TORS=".tors :
- {
- ___ctors = . ;
- *(.ctors)
- ___ctors_end = . ;
- ___dtors = . ;
- *(.dtors)
- ___dtors_end = . ;
- } > ram"
-
-cat <<EOF
-/* Copyright (C) 2014-2018 Free Software Foundation, Inc.
-
- Copying and distribution of this script, with or without modification,
- are permitted in any medium without royalty provided the copyright
- notice and this notice are preserved. */
-
-OUTPUT_FORMAT("${OUTPUT_FORMAT}")
-OUTPUT_ARCH(${ARCH})
-
-MEMORY
-{
- ram : o = 0x1000, l = 512k
-}
-
-SECTIONS
-{
-.text :
- {
- *(.text)
- *(.strings)
- ${RELOCATING+ _etext = . ; }
- } ${RELOCATING+ > ram}
-
- ${CONSTRUCTING+${TORS}}
-
-.data :
- {
- *(.data)
- ${RELOCATING+ _edata = . ; }
- } ${RELOCATING+ > ram}
-
-.bss :
- {
- ${RELOCATING+ _bss_start = . ; }
- *(.bss)
- *(COMMON)
- ${RELOCATING+ _end = . ; }
- } ${RELOCATING+ >ram}
-
-.stack ${RELOCATING+ 0x30000 } :
- {
- ${RELOCATING+ _stack = . ; }
- *(.stack)
- } ${RELOCATING+ > ram}
-
-.stab . (NOLOAD) :
- {
- [ .stab ]
- }
-
-.stabstr . (NOLOAD) :
- {
- [ .stabstr ]
- }
-}
-EOF
-
-
-
-
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index a3dbbb3d148..adf70ddee7b 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,17 @@
2018-04-16 Alan Modra <amodra@gmail.com>
+ * Makefile.am: Remove w65 support.
+ * configure.ac: Likewise.
+ * disassemble.c: Likewise.
+ * disassemble.h: Likewise.
+ * w65-dis.c: Delete.
+ * w65-opc.h: Delete.
+ * Makefile.in: Regenerate.
+ * configure: Regenerate.
+ * po/POTFILES.in: Regenerate.
+
+2018-04-16 Alan Modra <amodra@gmail.com>
+
* configure.ac: Remove we32k support.
* configure: Regenerate.
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
index 83303fcfe2a..71140bb177c 100644
--- a/opcodes/Makefile.am
+++ b/opcodes/Makefile.am
@@ -82,7 +82,6 @@ HFILES = \
sh-opc.h \
sh64-opc.h \
sysdep.h \
- w65-opc.h \
xc16x-desc.h xc16x-opc.h \
xstormy16-desc.h xstormy16-opc.h \
z8k-opc.h
@@ -251,7 +250,6 @@ TARGET_LIBOPCODES_CFILES = \
vax-dis.c \
visium-dis.c \
visium-opc.c \
- w65-dis.c \
wasm32-dis.c \
xc16x-asm.c \
xc16x-desc.c \
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index bdf9e37241c..4d731c0d9d1 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -383,7 +383,6 @@ HFILES = \
sh-opc.h \
sh64-opc.h \
sysdep.h \
- w65-opc.h \
xc16x-desc.h xc16x-opc.h \
xstormy16-desc.h xstormy16-opc.h \
z8k-opc.h
@@ -553,7 +552,6 @@ TARGET_LIBOPCODES_CFILES = \
vax-dis.c \
visium-dis.c \
visium-opc.c \
- w65-dis.c \
wasm32-dis.c \
xc16x-asm.c \
xc16x-desc.c \
@@ -956,7 +954,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vax-dis.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/visium-dis.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/visium-opc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/w65-dis.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wasm32-dis.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xc16x-asm.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xc16x-desc.Plo@am__quote@
diff --git a/opcodes/configure b/opcodes/configure
index ed17030faf9..56c8b33b113 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -12717,7 +12717,6 @@ if test x${all_targets} = xfalse ; then
bfd_v850_rh850_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
bfd_vax_arch) ta="$ta vax-dis.lo" ;;
bfd_visium_arch) ta="$ta visium-dis.lo visium-opc.lo" ;;
- bfd_w65_arch) ta="$ta w65-dis.lo" ;;
bfd_wasm32_arch) ta="$ta wasm32-dis.lo" ;;
bfd_xc16x_arch) ta="$ta xc16x-asm.lo xc16x-desc.lo xc16x-dis.lo xc16x-ibld.lo xc16x-opc.lo" using_cgen=yes ;;
bfd_xgate_arch) ta="$ta xgate-dis.lo xgate-opc.lo" ;;
diff --git a/opcodes/configure.ac b/opcodes/configure.ac
index 2d31d40ae12..eee9eac6be0 100644
--- a/opcodes/configure.ac
+++ b/opcodes/configure.ac
@@ -341,7 +341,6 @@ if test x${all_targets} = xfalse ; then
bfd_v850_rh850_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
bfd_vax_arch) ta="$ta vax-dis.lo" ;;
bfd_visium_arch) ta="$ta visium-dis.lo visium-opc.lo" ;;
- bfd_w65_arch) ta="$ta w65-dis.lo" ;;
bfd_wasm32_arch) ta="$ta wasm32-dis.lo" ;;
bfd_xc16x_arch) ta="$ta xc16x-asm.lo xc16x-desc.lo xc16x-dis.lo xc16x-ibld.lo xc16x-opc.lo" using_cgen=yes ;;
bfd_xgate_arch) ta="$ta xgate-dis.lo xgate-opc.lo" ;;
diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c
index 9c58db7ec9d..c5642c76faf 100644
--- a/opcodes/disassemble.c
+++ b/opcodes/disassemble.c
@@ -90,7 +90,6 @@
#define ARCH_v850
#define ARCH_vax
#define ARCH_visium
-#define ARCH_w65
#define ARCH_wasm32
#define ARCH_xstormy16
#define ARCH_xc16x
@@ -440,11 +439,6 @@ disassembler (enum bfd_architecture a,
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;
diff --git a/opcodes/disassemble.h b/opcodes/disassemble.h
index 2fea54fbc76..27c6c105223 100644
--- a/opcodes/disassemble.h
+++ b/opcodes/disassemble.h
@@ -90,7 +90,6 @@ extern int print_insn_tilepro (bfd_vma, disassemble_info *);
extern int print_insn_v850 (bfd_vma, disassemble_info *);
extern int print_insn_vax (bfd_vma, disassemble_info *);
extern int print_insn_visium (bfd_vma, disassemble_info *);
-extern int print_insn_w65 (bfd_vma, disassemble_info *);
extern int print_insn_wasm32 (bfd_vma, disassemble_info *);
extern int print_insn_xc16x (bfd_vma, disassemble_info *);
extern int print_insn_xgate (bfd_vma, disassemble_info *);
diff --git a/opcodes/po/POTFILES.in b/opcodes/po/POTFILES.in
index 7736bb7fff6..6e611c8b24e 100644
--- a/opcodes/po/POTFILES.in
+++ b/opcodes/po/POTFILES.in
@@ -208,8 +208,6 @@ v850-opc.c
vax-dis.c
visium-dis.c
visium-opc.c
-w65-dis.c
-w65-opc.h
wasm32-dis.c
xc16x-asm.c
xc16x-desc.c
diff --git a/opcodes/w65-dis.c b/opcodes/w65-dis.c
deleted file mode 100644
index 2ad4e4eeac5..00000000000
--- a/opcodes/w65-dis.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Disassemble WDC 65816 instructions.
- Copyright (C) 1995-2018 Free Software Foundation, Inc.
-
- This file is part of the GNU opcodes library.
-
- This library 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 3, or (at your option)
- any later version.
-
- It 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., 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#include "sysdep.h"
-#include <stdio.h>
-
-#define STATIC_TABLE
-#define DEFINE_TABLE
-
-#include "w65-opc.h"
-#include "disassemble.h"
-
-static fprintf_ftype fpr;
-static void *stream;
-static struct disassemble_info *local_info;
-
-static void
-print_operand (int lookup, char *format, int *args)
-{
- int val;
- int c;
-
- while (*format)
- {
- switch (c = *format++)
- {
- case '$':
- val = args[(*format++) - '0'];
- if (lookup)
- local_info->print_address_func (val, local_info);
- else
- fpr (stream, "0x%x", val);
-
- break;
- default:
- fpr (stream, "%c", c);
- break;
- }
- }
-}
-
-int
-print_insn_w65 (bfd_vma memaddr, struct disassemble_info *info)
-{
- int status = 0;
- unsigned char insn[4];
- const struct opinfo *op;
- int i;
- int X = 0;
- int M = 0;
- int args[2];
-
- stream = info->stream;
- fpr = info->fprintf_func;
- local_info = info;
-
- for (i = 0; i < 4 && status == 0; i++)
- status = info->read_memory_func (memaddr + i, insn + i, 1, info);
-
- for (op = optable; op->val != insn[0]; op++)
- ;
-
- fpr (stream, "%s", op->name);
-
- /* Prepare all the posible operand values. */
- {
- int size = 1;
- int asR_W65_ABS8 = insn[1];
- int asR_W65_ABS16 = (insn[2] << 8) + asR_W65_ABS8;
- int asR_W65_ABS24 = (insn[3] << 16) + asR_W65_ABS16;
- int asR_W65_PCR8 = ((char) (asR_W65_ABS8)) + memaddr + 2;
- int asR_W65_PCR16 = ((short) (asR_W65_ABS16)) + memaddr + 3;
-
- switch (op->amode)
- {
- DISASM ();
- }
-
- return size;
- }
-}
diff --git a/opcodes/w65-opc.h b/opcodes/w65-opc.h
deleted file mode 100644
index 724a11e2822..00000000000
--- a/opcodes/w65-opc.h
+++ /dev/null
@@ -1,568 +0,0 @@
-/* Instruction opcode header for WDC 65816
- (generated by the program sim/w65/gencode -a)
-
- Copyright (C) 2001-2018 Free Software Foundation, Inc.
-
- This file is part of the GNU opcodes library.
-
- This library 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 3, or (at your option)
- any later version.
-
- It 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 file; see the file COPYING. If not, write to the
- Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
- MA 02110-1301, USA. */
-
-#define ADDR_IMMTOA 1 /* #a */
-#define ADDR_IMMCOP 2 /* #c */
-#define ADDR_IMMTOI 3 /* #i */
-#define ADDR_ACC 4 /* A */
-#define ADDR_PC_REL 5 /* r */
-#define ADDR_PC_REL_LONG 6 /* rl */
-#define ADDR_IMPLIED 7 /* i */
-#define ADDR_STACK 8 /* s */
-#define ADDR_DIR 9 /* d */
-#define ADDR_DIR_IDX_X 10 /* d,x */
-#define ADDR_DIR_IDX_Y 11 /* d,y */
-#define ADDR_DIR_IND 12 /* (d) */
-#define ADDR_DIR_IDX_IND_X 13 /* (d,x) */
-#define ADDR_DIR_IND_IDX_Y 14 /* (d),y */
-#define ADDR_DIR_IND_LONG 15 /* [d] */
-#define ADDR_DIR_IND_IDX_Y_LONG 16 /* [d],y */
-#define ADDR_ABS 17 /* a */
-#define ADDR_ABS_IDX_X 18 /* a,x */
-#define ADDR_ABS_IDX_Y 19 /* a,y */
-#define ADDR_ABS_LONG 20 /* al */
-#define ADDR_ABS_IND_LONG 21 /* [a] */
-#define ADDR_ABS_LONG_IDX_X 22 /* al,x */
-#define ADDR_STACK_REL 23 /* d,s */
-#define ADDR_STACK_REL_INDX_IDX 24 /* (d,s),y */
-#define ADDR_ABS_IND 25 /* (a) */
-#define ADDR_ABS_IND_IDX 26 /* (a,x) */
-#define ADDR_BLOCK_MOVE 27 /* xyz */
-struct opinfo {
- int val;
- int code;
- char *name;
- int amode;
-};
-const struct opinfo optable[257]={
-#define O_adc 1
-#define O_and 2
-#define O_asl 3
-#define O_bcc 4
-#define O_bcs 5
-#define O_beq 6
-#define O_bit 7
-#define O_bmi 8
-#define O_bne 9
-#define O_bpl 10
-#define O_bra 11
-#define O_brk 12
-#define O_brl 13
-#define O_bvc 14
-#define O_bvs 15
-#define O_clc 16
-#define O_cld 17
-#define O_cli 18
-#define O_clv 19
-#define O_cmp 20
-#define O_cop 21
-#define O_cpx 22
-#define O_cpy 23
-#define O_dec 24
-#define O_dex 25
-#define O_dey 26
-#define O_eor 27
-#define O_inc 28
-#define O_inx 29
-#define O_iny 30
-#define O_jmp 31
-#define O_jsr 32
-#define O_lda 33
-#define O_ldx 34
-#define O_ldy 35
-#define O_lsr 36
-#define O_mvn 37
-#define O_mvp 38
-#define O_nop 39
-#define O_ora 40
-#define O_pea 41
-#define O_pei 42
-#define O_per 43
-#define O_pha 44
-#define O_phb 45
-#define O_phd 46
-#define O_phk 47
-#define O_php 48
-#define O_phx 49
-#define O_phy 50
-#define O_pla 51
-#define O_plb 52
-#define O_pld 53
-#define O_plp 54
-#define O_plx 55
-#define O_ply 56
-#define O_rep 57
-#define O_rol 58
-#define O_ror 59
-#define O_rti 60
-#define O_rtl 61
-#define O_rts 62
-#define O_sbc 63
-#define O_sec 64
-#define O_sed 65
-#define O_sei 66
-#define O_sep 67
-#define O_sta 68
-#define O_stp 69
-#define O_stx 70
-#define O_sty 71
-#define O_stz 72
-#define O_tax 73
-#define O_tay 74
-#define O_tcd 75
-#define O_tcs 76
-#define O_tdc 77
-#define O_trb 78
-#define O_tsb 79
-#define O_tsc 80
-#define O_tsx 81
-#define O_txa 82
-#define O_txs 83
-#define O_txy 84
-#define O_tya 85
-#define O_tyx 86
-#define O_wai 87
-#define O_wdm 88
-#define O_xba 89
-#define O_xce 90
-#ifdef DEFINE_TABLE
- {0x69, O_adc, "adc", ADDR_IMMTOA},
- {0x72, O_adc, "adc", ADDR_DIR_IND},
- {0x71, O_adc, "adc", ADDR_DIR_IND_IDX_Y},
- {0x73, O_adc, "adc", ADDR_STACK_REL_INDX_IDX},
- {0x61, O_adc, "adc", ADDR_DIR_IDX_IND_X},
- {0x67, O_adc, "adc", ADDR_DIR_IND_LONG},
- {0x77, O_adc, "adc", ADDR_DIR_IND_IDX_Y_LONG},
- {0x6D, O_adc, "adc", ADDR_ABS},
- {0x7D, O_adc, "adc", ADDR_ABS_IDX_X},
- {0x79, O_adc, "adc", ADDR_ABS_IDX_Y},
- {0x6F, O_adc, "adc", ADDR_ABS_LONG},
- {0x7F, O_adc, "adc", ADDR_ABS_LONG_IDX_X},
- {0x65, O_adc, "adc", ADDR_DIR},
- {0x63, O_adc, "adc", ADDR_STACK_REL},
- {0x75, O_adc, "adc", ADDR_DIR_IDX_X},
- {0x29, O_and, "and", ADDR_IMMTOA},
- {0x32, O_and, "and", ADDR_DIR_IND},
- {0x31, O_and, "and", ADDR_DIR_IND_IDX_Y},
- {0x33, O_and, "and", ADDR_STACK_REL_INDX_IDX},
- {0x21, O_and, "and", ADDR_DIR_IDX_IND_X},
- {0x27, O_and, "and", ADDR_DIR_IND_LONG},
- {0x37, O_and, "and", ADDR_DIR_IND_IDX_Y_LONG},
- {0x2D, O_and, "and", ADDR_ABS},
- {0x3D, O_and, "and", ADDR_ABS_IDX_X},
- {0x39, O_and, "and", ADDR_ABS_IDX_Y},
- {0x2F, O_and, "and", ADDR_ABS_LONG},
- {0x3F, O_and, "and", ADDR_ABS_LONG_IDX_X},
- {0x25, O_and, "and", ADDR_DIR},
- {0x23, O_and, "and", ADDR_STACK_REL},
- {0x35, O_and, "and", ADDR_DIR_IDX_X},
- {0x0A, O_asl, "asl", ADDR_ACC},
- {0x0E, O_asl, "asl", ADDR_ABS},
- {0x1E, O_asl, "asl", ADDR_ABS_IDX_X},
- {0x06, O_asl, "asl", ADDR_DIR},
- {0x16, O_asl, "asl", ADDR_DIR_IDX_X},
- {0x90, O_bcc, "bcc", ADDR_PC_REL},
- {0xB0, O_bcs, "bcs", ADDR_PC_REL},
- {0xF0, O_beq, "beq", ADDR_PC_REL},
- {0x89, O_bit, "bit", ADDR_IMMTOA},
- {0x24, O_bit, "bit", ADDR_DIR_IND},
- {0x34, O_bit, "bit", ADDR_DIR_IDX_IND_X},
- {0x2C, O_bit, "bit", ADDR_ABS},
- {0x3C, O_bit, "bit", ADDR_ABS_IDX_X},
- {0x30, O_bmi, "bmi", ADDR_PC_REL},
- {0xD0, O_bne, "bne", ADDR_PC_REL},
- {0x10, O_bpl, "bpl", ADDR_PC_REL},
- {0x80, O_bra, "bra", ADDR_PC_REL},
- {0x00, O_brk, "brk", ADDR_STACK},
- {0x82, O_brl, "brl", ADDR_PC_REL_LONG},
- {0x50, O_bvc, "bvc", ADDR_PC_REL},
- {0x70, O_bvs, "bvs", ADDR_PC_REL},
- {0x18, O_clc, "clc", ADDR_IMPLIED},
- {0xD8, O_cld, "cld", ADDR_IMPLIED},
- {0x58, O_cli, "cli", ADDR_IMPLIED},
- {0xB8, O_clv, "clv", ADDR_IMPLIED},
- {0xC9, O_cmp, "cmp", ADDR_IMMTOA},
- {0xD2, O_cmp, "cmp", ADDR_DIR_IND},
- {0xD1, O_cmp, "cmp", ADDR_DIR_IND_IDX_Y},
- {0xD3, O_cmp, "cmp", ADDR_STACK_REL_INDX_IDX},
- {0xC1, O_cmp, "cmp", ADDR_DIR_IDX_IND_X},
- {0xC7, O_cmp, "cmp", ADDR_DIR_IND_LONG},
- {0xD7, O_cmp, "cmp", ADDR_DIR_IND_IDX_Y_LONG},
- {0xCD, O_cmp, "cmp", ADDR_ABS},
- {0xDD, O_cmp, "cmp", ADDR_ABS_IDX_X},
- {0xD9, O_cmp, "cmp", ADDR_ABS_IDX_Y},
- {0xCF, O_cmp, "cmp", ADDR_ABS_LONG},
- {0xDF, O_cmp, "cmp", ADDR_ABS_LONG_IDX_X},
- {0xC5, O_cmp, "cmp", ADDR_DIR},
- {0xC3, O_cmp, "cmp", ADDR_STACK_REL},
- {0xD5, O_cmp, "cmp", ADDR_DIR_IDX_X},
- {0x02, O_cop, "cop", ADDR_IMMCOP},
- {0xE0, O_cpx, "cpx", ADDR_IMMTOI},
- {0xEC, O_cpx, "cpx", ADDR_ABS},
- {0xE4, O_cpx, "cpx", ADDR_DIR},
- {0xC0, O_cpy, "cpy", ADDR_IMMTOI},
- {0xCC, O_cpy, "cpy", ADDR_ABS},
- {0xC4, O_cpy, "cpy", ADDR_DIR},
- {0x3A, O_dec, "dec", ADDR_ACC},
- {0xCE, O_dec, "dec", ADDR_ABS},
- {0xDE, O_dec, "dec", ADDR_ABS_IDX_X},
- {0xC6, O_dec, "dec", ADDR_DIR},
- {0xD6, O_dec, "dec", ADDR_DIR_IDX_X},
- {0xCA, O_dex, "dex", ADDR_IMPLIED},
- {0x88, O_dey, "dey", ADDR_IMPLIED},
- {0x49, O_eor, "eor", ADDR_IMMTOA},
- {0x52, O_eor, "eor", ADDR_DIR_IND},
- {0x51, O_eor, "eor", ADDR_DIR_IND_IDX_Y},
- {0x53, O_eor, "eor", ADDR_STACK_REL_INDX_IDX},
- {0x41, O_eor, "eor", ADDR_DIR_IDX_IND_X},
- {0x47, O_eor, "eor", ADDR_DIR_IND_LONG},
- {0x57, O_eor, "eor", ADDR_DIR_IND_IDX_Y_LONG},
- {0x4D, O_eor, "eor", ADDR_ABS},
- {0x5D, O_eor, "eor", ADDR_ABS_IDX_X},
- {0x59, O_eor, "eor", ADDR_ABS_IDX_Y},
- {0x4F, O_eor, "eor", ADDR_ABS_LONG},
- {0x5F, O_eor, "eor", ADDR_ABS_LONG_IDX_X},
- {0x45, O_eor, "eor", ADDR_DIR},
- {0x43, O_eor, "eor", ADDR_STACK_REL},
- {0x55, O_eor, "eor", ADDR_DIR_IDX_X},
- {0x1A, O_inc, "inc", ADDR_ACC},
- {0xEE, O_inc, "inc", ADDR_ABS},
- {0xFE, O_inc, "inc", ADDR_ABS_IDX_X},
- {0xE6, O_inc, "inc", ADDR_DIR},
- {0xF6, O_inc, "inc", ADDR_DIR_IDX_X},
- {0xE8, O_inx, "inx", ADDR_IMPLIED},
- {0xC8, O_iny, "iny", ADDR_IMPLIED},
- {0x6C, O_jmp, "jmp", ADDR_ABS_IND},
- {0x7C, O_jmp, "jmp", ADDR_ABS_IND_IDX},
- {0xDC, O_jmp, "jmp", ADDR_ABS_IND_LONG},
- {0x4C, O_jmp, "jmp", ADDR_ABS},
- {0x5C, O_jmp, "jmp", ADDR_ABS_LONG},
- {0xFC, O_jsr, "jsr", ADDR_ABS_IND_IDX},
- {0x20, O_jsr, "jsr", ADDR_ABS},
- {0x22, O_jsr, "jsr", ADDR_ABS_LONG},
- {0xA9, O_lda, "lda", ADDR_IMMTOA},
- {0xB2, O_lda, "lda", ADDR_DIR_IND},
- {0xB1, O_lda, "lda", ADDR_DIR_IND_IDX_Y},
- {0xB3, O_lda, "lda", ADDR_STACK_REL_INDX_IDX},
- {0xA1, O_lda, "lda", ADDR_DIR_IDX_IND_X},
- {0xA7, O_lda, "lda", ADDR_DIR_IND_LONG},
- {0xB7, O_lda, "lda", ADDR_DIR_IND_IDX_Y_LONG},
- {0xAD, O_lda, "lda", ADDR_ABS},
- {0xBD, O_lda, "lda", ADDR_ABS_IDX_X},
- {0xB9, O_lda, "lda", ADDR_ABS_IDX_Y},
- {0xAF, O_lda, "lda", ADDR_ABS_LONG},
- {0xBF, O_lda, "lda", ADDR_ABS_LONG_IDX_X},
- {0xA5, O_lda, "lda", ADDR_DIR},
- {0xA3, O_lda, "lda", ADDR_STACK_REL},
- {0xB5, O_lda, "lda", ADDR_DIR_IDX_X},
- {0xA2, O_ldx, "ldx", ADDR_IMMTOI},
- {0xAE, O_ldx, "ldx", ADDR_ABS},
- {0xBE, O_ldx, "ldx", ADDR_ABS_IDX_Y},
- {0xA6, O_ldx, "ldx", ADDR_DIR},
- {0xB6, O_ldx, "ldx", ADDR_DIR_IDX_Y},
- {0xA0, O_ldy, "ldy", ADDR_IMMTOI},
- {0xAC, O_ldy, "ldy", ADDR_ABS},
- {0xBC, O_ldy, "ldy", ADDR_ABS_IDX_X},
- {0xA4, O_ldy, "ldy", ADDR_DIR},
- {0xB4, O_ldy, "ldy", ADDR_DIR_IDX_X},
- {0x4A, O_lsr, "lsr", ADDR_ACC},
- {0x4E, O_lsr, "lsr", ADDR_ABS},
- {0x5E, O_lsr, "lsr", ADDR_ABS_IDX_X},
- {0x46, O_lsr, "lsr", ADDR_DIR},
- {0x56, O_lsr, "lsr", ADDR_DIR_IDX_X},
- {0x54, O_mvn, "mvn", ADDR_BLOCK_MOVE},
- {0x44, O_mvp, "mvp", ADDR_BLOCK_MOVE},
- {0xEA, O_nop, "nop", ADDR_IMPLIED},
- {0x09, O_ora, "ora", ADDR_IMMTOA},
- {0x12, O_ora, "ora", ADDR_DIR_IND},
- {0x11, O_ora, "ora", ADDR_DIR_IND_IDX_Y},
- {0x13, O_ora, "ora", ADDR_STACK_REL_INDX_IDX},
- {0x01, O_ora, "ora", ADDR_DIR_IDX_IND_X},
- {0x07, O_ora, "ora", ADDR_DIR_IND_LONG},
- {0x17, O_ora, "ora", ADDR_DIR_IND_IDX_Y_LONG},
- {0x0D, O_ora, "ora", ADDR_ABS},
- {0x1D, O_ora, "ora", ADDR_ABS_IDX_X},
- {0x19, O_ora, "ora", ADDR_ABS_IDX_Y},
- {0x0F, O_ora, "ora", ADDR_ABS_LONG},
- {0x1F, O_ora, "ora", ADDR_ABS_LONG_IDX_X},
- {0x05, O_ora, "ora", ADDR_DIR},
- {0x03, O_ora, "ora", ADDR_STACK_REL},
- {0x15, O_ora, "ora", ADDR_DIR_IDX_X},
- {0xF4, O_pea, "pea", ADDR_ABS},
- {0xD4, O_pei, "pei", ADDR_DIR},
- {0x62, O_per, "per", ADDR_PC_REL_LONG},
- {0x48, O_pha, "pha", ADDR_STACK},
- {0x8B, O_phb, "phb", ADDR_STACK},
- {0x0B, O_phd, "phd", ADDR_STACK},
- {0x4B, O_phk, "phk", ADDR_STACK},
- {0x08, O_php, "php", ADDR_STACK},
- {0xDA, O_phx, "phx", ADDR_STACK},
- {0x5A, O_phy, "phy", ADDR_STACK},
- {0x68, O_pla, "pla", ADDR_STACK},
- {0xAB, O_plb, "plb", ADDR_STACK},
- {0x2B, O_pld, "pld", ADDR_STACK},
- {0x28, O_plp, "plp", ADDR_STACK},
- {0xFA, O_plx, "plx", ADDR_STACK},
- {0x7A, O_ply, "ply", ADDR_STACK},
- {0xC2, O_rep, "rep", ADDR_IMMCOP},
- {0x2A, O_rol, "rol", ADDR_ACC},
- {0x2E, O_rol, "rol", ADDR_ABS},
- {0x3E, O_rol, "rol", ADDR_ABS_IDX_X},
- {0x26, O_rol, "rol", ADDR_DIR},
- {0x36, O_rol, "rol", ADDR_DIR_IDX_X},
- {0x6A, O_ror, "ror", ADDR_ACC},
- {0x6E, O_ror, "ror", ADDR_ABS},
- {0x7E, O_ror, "ror", ADDR_ABS_IDX_X},
- {0x66, O_ror, "ror", ADDR_DIR},
- {0x76, O_ror, "ror", ADDR_DIR_IDX_X},
- {0x40, O_rti, "rti", ADDR_STACK},
- {0x6B, O_rtl, "rtl", ADDR_STACK},
- {0x60, O_rts, "rts", ADDR_STACK},
- {0xE9, O_sbc, "sbc", ADDR_IMMTOA},
- {0xF2, O_sbc, "sbc", ADDR_DIR_IND},
- {0xF1, O_sbc, "sbc", ADDR_DIR_IND_IDX_Y},
- {0xF3, O_sbc, "sbc", ADDR_STACK_REL_INDX_IDX},
- {0xE1, O_sbc, "sbc", ADDR_DIR_IDX_IND_X},
- {0xE7, O_sbc, "sbc", ADDR_DIR_IND_LONG},
- {0xF7, O_sbc, "sbc", ADDR_DIR_IND_IDX_Y_LONG},
- {0xED, O_sbc, "sbc", ADDR_ABS},
- {0xFD, O_sbc, "sbc", ADDR_ABS_IDX_X},
- {0xF9, O_sbc, "sbc", ADDR_ABS_IDX_Y},
- {0xEF, O_sbc, "sbc", ADDR_ABS_LONG},
- {0xFF, O_sbc, "sbc", ADDR_ABS_LONG_IDX_X},
- {0xE5, O_sbc, "sbc", ADDR_DIR},
- {0xE3, O_sbc, "sbc", ADDR_STACK_REL},
- {0xF5, O_sbc, "sbc", ADDR_DIR_IDX_X},
- {0x38, O_sec, "sec", ADDR_IMPLIED},
- {0xF8, O_sed, "sed", ADDR_IMPLIED},
- {0x78, O_sei, "sei", ADDR_IMPLIED},
- {0xE2, O_sep, "sep", ADDR_IMMCOP},
- {0x92, O_sta, "sta", ADDR_DIR_IND},
- {0x91, O_sta, "sta", ADDR_DIR_IND_IDX_Y},
- {0x93, O_sta, "sta", ADDR_STACK_REL_INDX_IDX},
- {0x81, O_sta, "sta", ADDR_DIR_IDX_IND_X},
- {0x87, O_sta, "sta", ADDR_DIR_IND_LONG},
- {0x97, O_sta, "sta", ADDR_DIR_IND_IDX_Y_LONG},
- {0x8D, O_sta, "sta", ADDR_ABS},
- {0x9D, O_sta, "sta", ADDR_ABS_IDX_X},
- {0x99, O_sta, "sta", ADDR_ABS_IDX_Y},
- {0x8F, O_sta, "sta", ADDR_ABS_LONG},
- {0x9F, O_sta, "sta", ADDR_ABS_LONG_IDX_X},
- {0x85, O_sta, "sta", ADDR_DIR},
- {0x83, O_sta, "sta", ADDR_STACK_REL},
- {0x95, O_sta, "sta", ADDR_DIR_IDX_X},
- {0xDB, O_stp, "stp", ADDR_IMPLIED},
- {0x8E, O_stx, "stx", ADDR_ABS},
- {0x86, O_stx, "stx", ADDR_DIR},
- {0x96, O_stx, "stx", ADDR_DIR_IDX_X},
- {0x8C, O_sty, "sty", ADDR_ABS},
- {0x84, O_sty, "sty", ADDR_DIR},
- {0x94, O_sty, "sty", ADDR_DIR_IDX_X},
- {0x9C, O_stz, "stz", ADDR_ABS},
- {0x9E, O_stz, "stz", ADDR_ABS_IDX_X},
- {0x64, O_stz, "stz", ADDR_DIR},
- {0x74, O_stz, "stz", ADDR_DIR_IDX_X},
- {0xAA, O_tax, "tax", ADDR_IMPLIED},
- {0xA8, O_tay, "tay", ADDR_IMPLIED},
- {0x5B, O_tcd, "tcd", ADDR_IMPLIED},
- {0x1B, O_tcs, "tcs", ADDR_IMPLIED},
- {0x7B, O_tdc, "tdc", ADDR_IMPLIED},
- {0x1C, O_trb, "trb", ADDR_ABS},
- {0x14, O_trb, "trb", ADDR_DIR},
- {0x0C, O_tsb, "tsb", ADDR_ABS},
- {0x04, O_tsb, "tsb", ADDR_DIR},
- {0x3B, O_tsc, "tsc", ADDR_IMPLIED},
- {0xBA, O_tsx, "tsx", ADDR_IMPLIED},
- {0x8A, O_txa, "txa", ADDR_IMPLIED},
- {0x9A, O_txs, "txs", ADDR_IMPLIED},
- {0x9B, O_txy, "txy", ADDR_IMPLIED},
- {0x98, O_tya, "tya", ADDR_IMPLIED},
- {0xBB, O_tyx, "tyx", ADDR_IMPLIED},
- {0xCB, O_wai, "wai", ADDR_IMPLIED},
- {0x42, O_wdm, "wdm", ADDR_IMPLIED},
- {0xEB, O_xba, "xba", ADDR_IMPLIED},
- {0xFB, O_xce, "xce", ADDR_IMPLIED},
- { 0, 0, NULL, 0 }
-};
-#endif
-#define DISASM()\
- case ADDR_IMMTOA:\
- args[0] = M==0 ? asR_W65_ABS16 : asR_W65_ABS8;\
- print_operand (0, " #$0", args);\
- size += M==0 ? 2:1;\
- break;\
- case ADDR_IMMCOP:\
- args[0] = asR_W65_ABS8;\
- print_operand (0, " #$0", args);\
- size += 1;\
- break;\
- case ADDR_IMMTOI:\
- args[0] = X==0 ? asR_W65_ABS16 : asR_W65_ABS8;\
- print_operand (0, " #$0", args);\
- size += X==0 ? 2:1;\
- break;\
- case ADDR_ACC:\
- print_operand (0, " a", 0);\
- size += 0;\
- break;\
- case ADDR_PC_REL:\
- args[0] = asR_W65_PCR8;\
- print_operand (0, " $0", args);\
- size += 1;\
- break;\
- case ADDR_PC_REL_LONG:\
- args[0] = asR_W65_PCR16;\
- print_operand (0, " $0", args);\
- size += 2;\
- break;\
- case ADDR_IMPLIED:\
- size += 0;\
- break;\
- case ADDR_STACK:\
- size += 0;\
- break;\
- case ADDR_DIR:\
- args[0] = asR_W65_ABS8;\
- print_operand (1, " <$0", args);\
- size += 1;\
- break;\
- case ADDR_DIR_IDX_X:\
- args[0] = asR_W65_ABS8;\
- print_operand (1, " <$0,x", args);\
- size += 1;\
- break;\
- case ADDR_DIR_IDX_Y:\
- args[0] = asR_W65_ABS8;\
- print_operand (1, " <$0,y", args);\
- size += 1;\
- break;\
- case ADDR_DIR_IND:\
- args[0] = asR_W65_ABS8;\
- print_operand (1, " (<$0)", args);\
- size += 1;\
- break;\
- case ADDR_DIR_IDX_IND_X:\
- args[0] = asR_W65_ABS8;\
- print_operand (1, " (<$0,x)", args);\
- size += 1;\
- break;\
- case ADDR_DIR_IND_IDX_Y:\
- args[0] = asR_W65_ABS8;\
- print_operand (1, " (<$0),y", args);\
- size += 1;\
- break;\
- case ADDR_DIR_IND_LONG:\
- args[0] = asR_W65_ABS8;\
- print_operand (1, " [$0]", args);\
- size += 1;\
- break;\
- case ADDR_DIR_IND_IDX_Y_LONG:\
- args[0] = asR_W65_ABS8;\
- print_operand (1, " [$0],y", args);\
- size += 1;\
- break;\
- case ADDR_ABS:\
- args[0] = asR_W65_ABS16;\
- print_operand (1, " !$0", args);\
- size += 2;\
- break;\
- case ADDR_ABS_IDX_X:\
- args[0] = asR_W65_ABS16;\
- print_operand (1, " !$0,x", args);\
- size += 2;\
- break;\
- case ADDR_ABS_IDX_Y:\
- args[0] = asR_W65_ABS16;\
- print_operand (1, " !$0,y", args);\
- size += 2;\
- break;\
- case ADDR_ABS_LONG:\
- args[0] = asR_W65_ABS24;\
- print_operand (1, " >$0", args);\
- size += 3;\
- break;\
- case ADDR_ABS_IND_LONG:\
- args[0] = asR_W65_ABS16;\
- print_operand (1, " [>$0]", args);\
- size += 2;\
- break;\
- case ADDR_ABS_LONG_IDX_X:\
- args[0] = asR_W65_ABS24;\
- print_operand (1, " >$0,x", args);\
- size += 3;\
- break;\
- case ADDR_STACK_REL:\
- args[0] = asR_W65_ABS8;\
- print_operand (0, " $0,s", args);\
- size += 1;\
- break;\
- case ADDR_STACK_REL_INDX_IDX:\
- args[0] = asR_W65_ABS8;\
- print_operand (0, " ($0,s),y", args);\
- size += 1;\
- break;\
- case ADDR_ABS_IND:\
- args[0] = asR_W65_ABS16;\
- print_operand (1, " ($0)", args);\
- size += 2;\
- break;\
- case ADDR_ABS_IND_IDX:\
- args[0] = asR_W65_ABS16;\
- print_operand (1, " ($0,x)", args);\
- size += 2;\
- break;\
- case ADDR_BLOCK_MOVE:\
- args[0] = (asR_W65_ABS16 >>8) &0xff;\
- args[1] = ( asR_W65_ABS16 & 0xff);\
- print_operand (0," $0,$1",args);\
- size += 2;\
- break;\
-
-#define GETINFO(size,type,pcrel)\
- case ADDR_IMMTOA: size = M==0 ? 2:1;type=M==0 ? R_W65_ABS16 : R_W65_ABS8;pcrel=0;break;\
- case ADDR_IMMCOP: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_IMMTOI: size = X==0 ? 2:1;type=X==0 ? R_W65_ABS16 : R_W65_ABS8;pcrel=0;break;\
- case ADDR_ACC: size = 0;type=-1;pcrel=0;break;\
- case ADDR_PC_REL: size = 1;type=R_W65_PCR8;pcrel=0;break;\
- case ADDR_PC_REL_LONG: size = 2;type=R_W65_PCR16;pcrel=0;break;\
- case ADDR_IMPLIED: size = 0;type=-1;pcrel=0;break;\
- case ADDR_STACK: size = 0;type=-1;pcrel=0;break;\
- case ADDR_DIR: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_DIR_IDX_X: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_DIR_IDX_Y: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_DIR_IND: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_DIR_IDX_IND_X: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_DIR_IND_IDX_Y: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_DIR_IND_LONG: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_DIR_IND_IDX_Y_LONG: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_ABS: size = 2;type=R_W65_ABS16;pcrel=0;break;\
- case ADDR_ABS_IDX_X: size = 2;type=R_W65_ABS16;pcrel=0;break;\
- case ADDR_ABS_IDX_Y: size = 2;type=R_W65_ABS16;pcrel=0;break;\
- case ADDR_ABS_LONG: size = 3;type=R_W65_ABS24;pcrel=0;break;\
- case ADDR_ABS_IND_LONG: size = 2;type=R_W65_ABS16;pcrel=0;break;\
- case ADDR_ABS_LONG_IDX_X: size = 3;type=R_W65_ABS24;pcrel=0;break;\
- case ADDR_STACK_REL: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_STACK_REL_INDX_IDX: size = 1;type=R_W65_ABS8;pcrel=0;break;\
- case ADDR_ABS_IND: size = 2;type=R_W65_ABS16;pcrel=0;break;\
- case ADDR_ABS_IND_IDX: size = 2;type=R_W65_ABS16;pcrel=0;break;\
- case ADDR_BLOCK_MOVE: size = 2;type=-1;pcrel=0;break;\
-