* archures.c (bfd_mach_cpu32_fido): Rename to bfd_mach_fido.
	* bfd-in2.h: Regenerate.
	* cpu-m68k.c (arch_info_struct): Use bfd_mach_fido instead of
	bfd_mach_cpu32_fido.
	(m68k_arch_features): Use fido_a instead of cpu32.
	(bfd_m68k_compatible): Reject the combination of Fido and
	ColdFire.  Accept the combination of CPU32 and Fido with a
	warning.
	* elf32-m68k.c (elf32_m68k_object_p,
	elf32_m68k_merge_private_bfd_data,
	elf32_m68k_print_private_bfd_data): Treat Fido as an
	architecture by itself.

binutils/
	* readelf.c (get_machine_flags): Treat Fido as an architecture
	by itself.

gas/
	* config/tc-m68k.c (m68k_archs, m68k_cpus): Treat Fido as an
	architecture by itself.
	(m68k_ip): Don't issue a warning for tbl instructions on fido.
	(m68k_elf_final_processing): Treat Fido as an architecture by
	itself.

include/elf/
	* m68k.h (EF_M68K_FIDO): New.
	(EF_M68K_ARCH_MASK): OR EF_M68K_FIDO.
	(EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): Remove.

include/opcode/
	* m68k.h (m68010up): OR fido_a.

opcodes/
	* m68k-opc.c (m68k_opcodes): Replace cpu32 with
	cpu32 | fido_a except on tbl instructions.
This commit is contained in:
Kazu Hirata 2007-01-08 18:42:37 +00:00
parent 00fa51f680
commit 3bdcfdf41f
15 changed files with 184 additions and 128 deletions

View File

@ -1,3 +1,18 @@
2007-01-08 Kazu Hirata <kazu@codesourcery.com>
* archures.c (bfd_mach_cpu32_fido): Rename to bfd_mach_fido.
* bfd-in2.h: Regenerate.
* cpu-m68k.c (arch_info_struct): Use bfd_mach_fido instead of
bfd_mach_cpu32_fido.
(m68k_arch_features): Use fido_a instead of cpu32.
(bfd_m68k_compatible): Reject the combination of Fido and
ColdFire. Accept the combination of CPU32 and Fido with a
warning.
* elf32-m68k.c (elf32_m68k_object_p,
elf32_m68k_merge_private_bfd_data,
elf32_m68k_print_private_bfd_data): Treat Fido as an
architecture by itself.
2007-01-08 Kai Tietz <kai.tietz@onevision.com>
* config.bfd: Renamed target x86_64-*-mingw64 to x86_64-*-mingw*.

View File

@ -80,7 +80,7 @@ DESCRIPTION
.#define bfd_mach_m68040 6
.#define bfd_mach_m68060 7
.#define bfd_mach_cpu32 8
.#define bfd_mach_cpu32_fido 9
.#define bfd_mach_fido 9
.#define bfd_mach_mcf_isa_a_nodiv 10
.#define bfd_mach_mcf_isa_a 11
.#define bfd_mach_mcf_isa_a_mac 12

View File

@ -1715,7 +1715,7 @@ enum bfd_architecture
#define bfd_mach_m68040 6
#define bfd_mach_m68060 7
#define bfd_mach_cpu32 8
#define bfd_mach_cpu32_fido 9
#define bfd_mach_fido 9
#define bfd_mach_mcf_isa_a_nodiv 10
#define bfd_mach_mcf_isa_a 11
#define bfd_mach_mcf_isa_a_mac 12

View File

@ -41,7 +41,7 @@ static const bfd_arch_info_type arch_info_struct[] =
N(bfd_mach_m68040, "m68k:68040", FALSE, &arch_info_struct[6]),
N(bfd_mach_m68060, "m68k:68060", FALSE, &arch_info_struct[7]),
N(bfd_mach_cpu32, "m68k:cpu32", FALSE, &arch_info_struct[8]),
N(bfd_mach_cpu32_fido, "m68k:fido", FALSE, &arch_info_struct[9]),
N(bfd_mach_fido, "m68k:fido", FALSE, &arch_info_struct[9]),
/* Various combinations of CF architecture features */
N(bfd_mach_mcf_isa_a_nodiv, "m68k:isa-a:nodiv",
@ -108,7 +108,7 @@ static const unsigned m68k_arch_features[] =
m68040|m68881|m68851,
m68060|m68881|m68851,
cpu32|m68881,
cpu32|m68881|fido_a,
fido_a|m68881,
mcfisa_a,
mcfisa_a|mcfhwdiv,
mcfisa_a|mcfhwdiv|mcfmac,
@ -214,6 +214,10 @@ bfd_m68k_compatible (const bfd_arch_info_type *a,
if ((~features & (cpu32 | mcfisa_a)) == 0)
return NULL;
/* Fido and Coldfire are incompatible. */
if ((~features & (fido_a | mcfisa_a)) == 0)
return NULL;
/* ISA A+ and ISA B are incompatible. */
if ((~features & (mcfisa_aa | mcfisa_b)) == 0)
return NULL;
@ -222,6 +226,22 @@ bfd_m68k_compatible (const bfd_arch_info_type *a,
if ((~features & (mcfmac | mcfemac)) == 0)
return NULL;
/* CPU32 is compatible with Fido except that Fido does not
support tbl instructions. Warn when the user wants to mix
the two. */
if ((a->mach == bfd_mach_cpu32 && b->mach == bfd_mach_fido)
|| (a->mach == bfd_mach_fido && b->mach == bfd_mach_cpu32))
{
static int cpu32_fido_mix_warning;
if (!cpu32_fido_mix_warning)
{
cpu32_fido_mix_warning = 1;
(*_bfd_error_handler) ("warning: linking CPU32 objects with fido objects");
}
return bfd_lookup_arch (a->arch,
bfd_m68k_features_to_mach (fido_a | m68881));
}
return bfd_lookup_arch (a->arch, bfd_m68k_features_to_mach (features));
}
else

View File

@ -432,14 +432,9 @@ elf32_m68k_object_p (bfd *abfd)
if ((eflags & EF_M68K_ARCH_MASK) == EF_M68K_M68000)
features |= m68000;
else if ((eflags & EF_M68K_ARCH_MASK) == EF_M68K_CPU32)
{
features |= cpu32;
switch (eflags & EF_M68K_CPU32_MASK)
{
case EF_M68K_CPU32_FIDO_A:
features |= fido_a; break;
}
}
features |= cpu32;
else if ((eflags & EF_M68K_ARCH_MASK) == EF_M68K_FIDO)
features |= fido_a;
else
{
switch (eflags & EF_M68K_CF_ISA_MASK)
@ -530,7 +525,9 @@ elf32_m68k_merge_private_bfd_data (ibfd, obfd)
if ((in_flags & EF_M68K_ARCH_MASK) == EF_M68K_M68000)
variant_mask = 0;
else if ((in_flags & EF_M68K_ARCH_MASK) == EF_M68K_CPU32)
variant_mask = EF_M68K_CPU32_MASK;
variant_mask = 0;
else if ((in_flags & EF_M68K_ARCH_MASK) == EF_M68K_FIDO)
variant_mask = 0;
else
variant_mask = EF_M68K_CF_ISA_MASK;
@ -538,6 +535,12 @@ elf32_m68k_merge_private_bfd_data (ibfd, obfd)
out_isa = (out_flags & variant_mask);
if (in_isa > out_isa)
out_flags ^= in_isa ^ out_isa;
if (((in_flags & EF_M68K_ARCH_MASK) == EF_M68K_CPU32
&& (out_flags & EF_M68K_ARCH_MASK) == EF_M68K_FIDO)
|| ((in_flags & EF_M68K_ARCH_MASK) == EF_M68K_FIDO
&& (out_flags & EF_M68K_ARCH_MASK) == EF_M68K_CPU32))
out_flags = EF_M68K_FIDO;
else
out_flags |= in_flags ^ in_isa;
}
elf_elfheader (obfd)->e_flags = out_flags;
@ -567,11 +570,9 @@ elf32_m68k_print_private_bfd_data (abfd, ptr)
if ((eflags & EF_M68K_ARCH_MASK) == EF_M68K_M68000)
fprintf (file, " [m68000]");
else if ((eflags & EF_M68K_ARCH_MASK) == EF_M68K_CPU32)
{
fprintf (file, " [cpu32]");
if (eflags & EF_M68K_CPU32_FIDO_A)
fprintf (file, " [fido]");
}
fprintf (file, " [cpu32]");
else if ((eflags & EF_M68K_ARCH_MASK) == EF_M68K_FIDO)
fprintf (file, " [fido]");
else
{
if ((eflags & EF_M68K_ARCH_MASK) == EF_M68K_CFV4E)

View File

@ -1,3 +1,8 @@
2007-01-08 Kazu Hirata <kazu@codesourcery.com>
* readelf.c (get_machine_flags): Treat Fido as an architecture
by itself.
2007-01-08 Kai Tietz <kai.tietz@onevision.com>
* configure.in: Renamed target x86_64-*-mingw64 to

View File

@ -2015,11 +2015,9 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
if ((e_flags & EF_M68K_ARCH_MASK) == EF_M68K_M68000)
strcat (buf, ", m68000");
else if ((e_flags & EF_M68K_ARCH_MASK) == EF_M68K_CPU32)
{
strcat (buf, ", cpu32");
if (e_flags & EF_M68K_CPU32_FIDO_A)
strcat (buf, ", fido_a");
}
strcat (buf, ", cpu32");
else if ((e_flags & EF_M68K_ARCH_MASK) == EF_M68K_FIDO)
strcat (buf, ", fido_a");
else
{
char const *isa = _("unknown");

View File

@ -1,3 +1,11 @@
2007-01-08 Kazu Hirata <kazu@codesourcery.com>
* config/tc-m68k.c (m68k_archs, m68k_cpus): Treat Fido as an
architecture by itself.
(m68k_ip): Don't issue a warning for tbl instructions on fido.
(m68k_elf_final_processing): Treat Fido as an architecture by
itself.
2007-01-08 Kai Tietz <kai.tietz@onevision.com>
* configure.tgt: Renamed target x86_64-*-mingw64 to x86_64-*-mingw*

View File

@ -425,7 +425,7 @@ static const struct m68k_cpu m68k_archs[] =
{m68040, m68040_ctrl, "68040", 0},
{m68060, m68060_ctrl, "68060", 0},
{cpu32|m68881, cpu32_ctrl, "cpu32", 0},
{cpu32|fido_a, fido_ctrl, "fidoa", 0},
{fido_a, fido_ctrl, "fidoa", 0},
{mcfisa_a|mcfhwdiv, NULL, "isaa", 0},
{mcfisa_a|mcfhwdiv|mcfisa_aa|mcfusp, NULL, "isaaplus", 0},
{mcfisa_a|mcfhwdiv|mcfisa_b|mcfusp, NULL, "isab", 0},
@ -557,7 +557,7 @@ static const struct m68k_cpu m68k_cpus[] =
{mcfisa_a|mcfisa_b|mcfhwdiv|mcfemac|mcfusp|cfloat, mcfv4e_ctrl, "5485", -1},
{mcfisa_a|mcfisa_b|mcfhwdiv|mcfemac|mcfusp|cfloat, mcfv4e_ctrl, "548x", 0},
{cpu32|fido_a, fido_ctrl, "fido", 1},
{fido_a, fido_ctrl, "fido", 1},
{0,NULL,NULL, 0}
};
@ -7514,11 +7514,9 @@ m68k_elf_final_processing (void)
flags |= EF_M68K_CFV4E;
/* Set file-specific flags if this is a cpu32 processor. */
if (cpu_of_arch (current_architecture) & cpu32)
{
flags |= EF_M68K_CPU32;
if (cpu_of_arch (current_architecture) & fido_a)
flags |= EF_M68K_CPU32_FIDO_A;
}
flags |= EF_M68K_CPU32;
else if (cpu_of_arch (current_architecture) & fido_a)
flags |= EF_M68K_FIDO;
else if ((cpu_of_arch (current_architecture) & m68000up)
&& !(cpu_of_arch (current_architecture) & m68020up))
flags |= EF_M68K_M68000;

View File

@ -1,3 +1,9 @@
2007-01-08 Kazu Hirata <kazu@codesourcery.com>
* m68k.h (EF_M68K_FIDO): New.
(EF_M68K_ARCH_MASK): OR EF_M68K_FIDO.
(EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): Remove.
2006-12-25 Kazu Hirata <kazu@codesourcery.com>
* m68k.h (EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): New.

View File

@ -57,7 +57,9 @@ END_RELOC_NUMBERS (R_68K_max)
#define EF_M68K_CPU32 0x00810000
#define EF_M68K_M68000 0x01000000
#define EF_M68K_CFV4E 0x00008000
#define EF_M68K_ARCH_MASK (EF_M68K_M68000 | EF_M68K_CPU32 | EF_M68K_CFV4E)
#define EF_M68K_FIDO 0x02000000
#define EF_M68K_ARCH_MASK \
(EF_M68K_M68000 | EF_M68K_CPU32 | EF_M68K_CFV4E | EF_M68K_FIDO)
/* We use the bottom 8 bits to encode information about the
coldfire variant. If we use any of these bits, the top 24 bits are
@ -76,10 +78,4 @@ END_RELOC_NUMBERS (R_68K_max)
#define EF_M68K_CF_FLOAT 0x40 /* Has float insns */
#define EF_M68K_CF_MASK 0xFF
/* We use the bottom 8 bits to encode information about the
CPU32 variant. If we use any of these bits, the top 24 bits must
be EF_M68K_CPU32. */
#define EF_M68K_CPU32_FIDO_A 0x01
#define EF_M68K_CPU32_MASK 0xFF
#endif

View File

@ -1,3 +1,7 @@
2007-01-08 Kazu Hirata <kazu@codesourcery.com>
* m68k.h (m68010up): OR fido_a.
2006-12-25 Kazu Hirata <kazu@codesourcery.com>
* m68k.h (fido_a): New.

View File

@ -49,7 +49,7 @@
#define m68040up (m68040 | m68060)
#define m68030up (m68030 | m68040up)
#define m68020up (m68020 | m68030up)
#define m68010up (m68010 | cpu32 | m68020up)
#define m68010up (m68010 | cpu32 | fido_a | m68020up)
#define m68000up (m68000 | m68010up)
#define mfloat (m68881 | m68040 | m68060)

View File

@ -1,3 +1,8 @@
2007-01-08 Kazu Hirata <kazu@codesourcery.com>
* m68k-opc.c (m68k_opcodes): Replace cpu32 with
cpu32 | fido_a except on tbl instructions.
2007-01-04 Paul Brook <paul@codesourcery.com>
* arm-dis.c (arm_opcodes): Fix cpsie and cpsid entries.

View File

@ -131,20 +131,20 @@ const struct m68k_opcode m68k_opcodes[] =
{"bgtw", 2, one(0067000), one(0177777), "BW", m68000up | mcfisa_a },
{"blew", 2, one(0067400), one(0177777), "BW", m68000up | mcfisa_a },
{"bhil", 2, one(0061377), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"blsl", 2, one(0061777), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bccl", 2, one(0062377), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bcsl", 2, one(0062777), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bnel", 2, one(0063377), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"beql", 2, one(0063777), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bvcl", 2, one(0064377), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bvsl", 2, one(0064777), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bpll", 2, one(0065377), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bmil", 2, one(0065777), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bgel", 2, one(0066377), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bltl", 2, one(0066777), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bgtl", 2, one(0067377), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"blel", 2, one(0067777), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bhil", 2, one(0061377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"blsl", 2, one(0061777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bccl", 2, one(0062377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bcsl", 2, one(0062777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bnel", 2, one(0063377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"beql", 2, one(0063777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bvcl", 2, one(0064377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bvsl", 2, one(0064777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bpll", 2, one(0065377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bmil", 2, one(0065777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bgel", 2, one(0066377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bltl", 2, one(0066777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bgtl", 2, one(0067377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"blel", 2, one(0067777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bhis", 2, one(0061000), one(0177400), "BB", m68000up | mcfisa_a },
{"blss", 2, one(0061400), one(0177400), "BB", m68000up | mcfisa_a },
@ -193,14 +193,14 @@ const struct m68k_opcode m68k_opcodes[] =
{"bfset", 4, two(0167300, 0), two(0177700, 0170000), "?sO2O3", m68020up },
{"bftst", 4, two(0164300, 0), two(0177700, 0170000), "/sO2O3", m68020up },
{"bgnd", 2, one(0045372), one(0177777), "", cpu32 },
{"bgnd", 2, one(0045372), one(0177777), "", cpu32 | fido_a },
{"bitrev", 2, one(0000300), one(0177770), "Ds", mcfisa_aa},
{"bkpt", 2, one(0044110), one(0177770), "ts", m68010up },
{"braw", 2, one(0060000), one(0177777), "BW", m68000up | mcfisa_a },
{"bral", 2, one(0060377), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bral", 2, one(0060377), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bras", 2, one(0060000), one(0177400), "BB", m68000up | mcfisa_a },
{"bset", 2, one(0000700), one(0170700), "Dd$s", m68000up | mcfisa_a },
@ -209,7 +209,7 @@ const struct m68k_opcode m68k_opcodes[] =
{"bset", 4, one(0004300), one(0177700), "#bqs", mcfisa_a },
{"bsrw", 2, one(0060400), one(0177777), "BW", m68000up | mcfisa_a },
{"bsrl", 2, one(0060777), one(0177777), "BL", m68020up | cpu32 | mcfisa_b},
{"bsrl", 2, one(0060777), one(0177777), "BL", m68020up | cpu32 | fido_a | mcfisa_b},
{"bsrs", 2, one(0060400), one(0177400), "BB", m68000up | mcfisa_a },
{"btst", 2, one(0000400), one(0170700), "Dd;b", m68000up | mcfisa_a },
@ -229,9 +229,9 @@ const struct m68k_opcode m68k_opcodes[] =
{"casw", 4, two(0006300, 0), two(0177700, 0177070), "D3D2~s", m68020up },
{"casl", 4, two(0007300, 0), two(0177700, 0177070), "D3D2~s", m68020up },
{"chk2b", 4, two(0000300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 },
{"chk2w", 4, two(0001300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 },
{"chk2l", 4, two(0002300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 },
{"chk2b", 4, two(0000300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
{"chk2w", 4, two(0001300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
{"chk2l", 4, two(0002300,0004000), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
{"chkl", 2, one(0040400), one(0170700), ";lDd", m68000up },
{"chkw", 2, one(0040600), one(0170700), ";wDd", m68000up },
@ -256,9 +256,9 @@ const struct m68k_opcode m68k_opcodes[] =
{"clrw", 2, one(0041100), one(0177700), "$s", m68000up | mcfisa_a },
{"clrl", 2, one(0041200), one(0177700), "$s", m68000up | mcfisa_a },
{"cmp2b", 4, two(0000300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
{"cmp2w", 4, two(0001300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
{"cmp2l", 4, two(0002300,0), two(0177700,07777), "!sR1", m68020up | cpu32 },
{"cmp2b", 4, two(0000300,0), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
{"cmp2w", 4, two(0001300,0), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
{"cmp2l", 4, two(0002300,0), two(0177700,07777), "!sR1", m68020up | cpu32 | fido_a },
{"cmpaw", 2, one(0130300), one(0170700), "*wAd", m68000up },
{"cmpal", 2, one(0130700), one(0170700), "*lAd", m68000up | mcfisa_a },
@ -310,21 +310,21 @@ const struct m68k_opcode m68k_opcodes[] =
{"divsw", 2, one(0100700), one(0170700), ";wDd", m68000up | mcfhwdiv },
{"divsl", 4, two(0046100,0006000),two(0177700,0107770),";lD3D1", m68020up|cpu32 },
{"divsl", 4, two(0046100,0004000),two(0177700,0107770),";lDD", m68020up|cpu32 },
{"divsl", 4, two(0046100,0006000),two(0177700,0107770),";lD3D1", m68020up | cpu32 | fido_a },
{"divsl", 4, two(0046100,0004000),two(0177700,0107770),";lDD", m68020up | cpu32 | fido_a },
{"divsl", 4, two(0046100,0004000),two(0177700,0107770),"qsDD", mcfhwdiv },
{"divsll", 4, two(0046100,0004000),two(0177700,0107770),";lD3D1",m68020up|cpu32 },
{"divsll", 4, two(0046100,0004000),two(0177700,0107770),";lDD", m68020up|cpu32 },
{"divsll", 4, two(0046100,0004000),two(0177700,0107770),";lD3D1",m68020up | cpu32 | fido_a },
{"divsll", 4, two(0046100,0004000),two(0177700,0107770),";lDD", m68020up | cpu32 | fido_a },
{"divuw", 2, one(0100300), one(0170700), ";wDd", m68000up | mcfhwdiv },
{"divul", 4, two(0046100,0002000),two(0177700,0107770),";lD3D1", m68020up|cpu32 },
{"divul", 4, two(0046100,0000000),two(0177700,0107770),";lDD", m68020up|cpu32 },
{"divul", 4, two(0046100,0002000),two(0177700,0107770),";lD3D1", m68020up | cpu32 | fido_a },
{"divul", 4, two(0046100,0000000),two(0177700,0107770),";lDD", m68020up | cpu32 | fido_a },
{"divul", 4, two(0046100,0000000),two(0177700,0107770),"qsDD", mcfhwdiv },
{"divull", 4, two(0046100,0000000),two(0177700,0107770),";lD3D1",m68020up|cpu32 },
{"divull", 4, two(0046100,0000000),two(0177700,0107770),";lDD", m68020up|cpu32 },
{"divull", 4, two(0046100,0000000),two(0177700,0107770),";lD3D1",m68020up | cpu32 | fido_a },
{"divull", 4, two(0046100,0000000),two(0177700,0107770),";lDD", m68020up | cpu32 | fido_a },
{"eorib", 4, one(0005000), one(0177700), "#b$s", m68000up },
{"eorib", 4, one(0005074), one(0177777), "#bCs", m68000up },
@ -358,7 +358,7 @@ const struct m68k_opcode m68k_opcodes[] =
{"extw", 2, one(0044200), one(0177770), "Ds", m68000up|mcfisa_a },
{"extl", 2, one(0044300), one(0177770), "Ds", m68000up|mcfisa_a },
{"extbl", 2, one(0044700), one(0177770), "Ds", m68020up|cpu32|mcfisa_a },
{"extbl", 2, one(0044700), one(0177770), "Ds", m68020up | cpu32 | fido_a | mcfisa_a },
{"ff1", 2, one(0002300), one(0177770), "Ds", mcfisa_aa},
@ -1437,12 +1437,12 @@ const struct m68k_opcode m68k_opcodes[] =
{"lea", 2, one(0040700), one(0170700), "!sAd", m68000up | mcfisa_a },
{"lpstop", 6, two(0174000,0000700),two(0177777,0177777),"#w", cpu32|m68060 },
{"lpstop", 6, two(0174000,0000700),two(0177777,0177777),"#w", cpu32 | fido_a | m68060 },
{"linkw", 4, one(0047120), one(0177770), "As#w", m68000up | mcfisa_a },
{"linkl", 6, one(0044010), one(0177770), "As#l", m68020up | cpu32 },
{"linkl", 6, one(0044010), one(0177770), "As#l", m68020up | cpu32 | fido_a },
{"link", 4, one(0047120), one(0177770), "As#W", m68000up | mcfisa_a },
{"link", 6, one(0044010), one(0177770), "As#l", m68020up | cpu32 },
{"link", 6, one(0044010), one(0177770), "As#l", m68020up | cpu32 | fido_a },
{"lslb", 2, one(0160410), one(0170770), "QdDs", m68000up },
{"lslb", 2, one(0160450), one(0170770), "DdDs", m68000up },
@ -1672,14 +1672,14 @@ const struct m68k_opcode m68k_opcodes[] =
{"msacl", 4, two(0xa000, 0x0900), two(0xf130, 0x0f00), "RMRmeH", mcfemac },
{"mulsw", 2, one(0140700), one(0170700), ";wDd", m68000up|mcfisa_a },
{"mulsl", 4, two(0046000,004000), two(0177700,0107770), ";lD1", m68020up|cpu32 },
{"mulsl", 4, two(0046000,004000), two(0177700,0107770), ";lD1", m68020up | cpu32 | fido_a },
{"mulsl", 4, two(0046000,004000), two(0177700,0107770), "qsD1", mcfisa_a },
{"mulsl", 4, two(0046000,006000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
{"mulsl", 4, two(0046000,006000), two(0177700,0107770), ";lD3D1",m68020up | cpu32 | fido_a },
{"muluw", 2, one(0140300), one(0170700), ";wDd", m68000up|mcfisa_a },
{"mulul", 4, two(0046000,000000), two(0177700,0107770), ";lD1", m68020up|cpu32 },
{"mulul", 4, two(0046000,000000), two(0177700,0107770), ";lD1", m68020up | cpu32 | fido_a },
{"mulul", 4, two(0046000,000000), two(0177700,0107770), "qsD1", mcfisa_a },
{"mulul", 4, two(0046000,002000), two(0177700,0107770), ";lD3D1",m68020up|cpu32 },
{"mulul", 4, two(0046000,002000), two(0177700,0107770), ";lD3D1",m68020up | cpu32 | fido_a },
{"nbcd", 2, one(0044000), one(0177700), "$s", m68000up },
@ -2000,59 +2000,59 @@ const struct m68k_opcode m68k_opcodes[] =
/* Traps have to come before conditional sets, as they have a more
specific opcode. */
{"trapcc", 2, one(0052374), one(0177777), "", m68020up | cpu32 },
{"trapcs", 2, one(0052774), one(0177777), "", m68020up | cpu32 },
{"trapeq", 2, one(0053774), one(0177777), "", m68020up | cpu32 },
{"trapcc", 2, one(0052374), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapcs", 2, one(0052774), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapeq", 2, one(0053774), one(0177777), "", m68020up | cpu32 | fido_a },
{"tpf", 2, one(0050774), one(0177777), "", mcfisa_a },
{"trapf", 2, one(0050774), one(0177777), "", m68020up | cpu32 | mcfisa_a },
{"trapge", 2, one(0056374), one(0177777), "", m68020up | cpu32 },
{"trapgt", 2, one(0057374), one(0177777), "", m68020up | cpu32 },
{"traphi", 2, one(0051374), one(0177777), "", m68020up | cpu32 },
{"traple", 2, one(0057774), one(0177777), "", m68020up | cpu32 },
{"trapls", 2, one(0051774), one(0177777), "", m68020up | cpu32 },
{"traplt", 2, one(0056774), one(0177777), "", m68020up | cpu32 },
{"trapmi", 2, one(0055774), one(0177777), "", m68020up | cpu32 },
{"trapne", 2, one(0053374), one(0177777), "", m68020up | cpu32 },
{"trappl", 2, one(0055374), one(0177777), "", m68020up | cpu32 },
{"trapt", 2, one(0050374), one(0177777), "", m68020up | cpu32 },
{"trapvc", 2, one(0054374), one(0177777), "", m68020up | cpu32 },
{"trapvs", 2, one(0054774), one(0177777), "", m68020up | cpu32 },
{"trapf", 2, one(0050774), one(0177777), "", m68020up | cpu32 | fido_a | mcfisa_a },
{"trapge", 2, one(0056374), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapgt", 2, one(0057374), one(0177777), "", m68020up | cpu32 | fido_a },
{"traphi", 2, one(0051374), one(0177777), "", m68020up | cpu32 | fido_a },
{"traple", 2, one(0057774), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapls", 2, one(0051774), one(0177777), "", m68020up | cpu32 | fido_a },
{"traplt", 2, one(0056774), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapmi", 2, one(0055774), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapne", 2, one(0053374), one(0177777), "", m68020up | cpu32 | fido_a },
{"trappl", 2, one(0055374), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapt", 2, one(0050374), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapvc", 2, one(0054374), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapvs", 2, one(0054774), one(0177777), "", m68020up | cpu32 | fido_a },
{"trapccw", 4, one(0052372), one(0177777), "#w", m68020up|cpu32 },
{"trapcsw", 4, one(0052772), one(0177777), "#w", m68020up|cpu32 },
{"trapeqw", 4, one(0053772), one(0177777), "#w", m68020up|cpu32 },
{"trapccw", 4, one(0052372), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapcsw", 4, one(0052772), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapeqw", 4, one(0053772), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"tpfw", 4, one(0050772), one(0177777), "#w", mcfisa_a},
{"trapfw", 4, one(0050772), one(0177777), "#w", m68020up|cpu32|mcfisa_a},
{"trapgew", 4, one(0056372), one(0177777), "#w", m68020up|cpu32 },
{"trapgtw", 4, one(0057372), one(0177777), "#w", m68020up|cpu32 },
{"traphiw", 4, one(0051372), one(0177777), "#w", m68020up|cpu32 },
{"traplew", 4, one(0057772), one(0177777), "#w", m68020up|cpu32 },
{"traplsw", 4, one(0051772), one(0177777), "#w", m68020up|cpu32 },
{"trapltw", 4, one(0056772), one(0177777), "#w", m68020up|cpu32 },
{"trapmiw", 4, one(0055772), one(0177777), "#w", m68020up|cpu32 },
{"trapnew", 4, one(0053372), one(0177777), "#w", m68020up|cpu32 },
{"trapplw", 4, one(0055372), one(0177777), "#w", m68020up|cpu32 },
{"traptw", 4, one(0050372), one(0177777), "#w", m68020up|cpu32 },
{"trapvcw", 4, one(0054372), one(0177777), "#w", m68020up|cpu32 },
{"trapvsw", 4, one(0054772), one(0177777), "#w", m68020up|cpu32 },
{"trapfw", 4, one(0050772), one(0177777), "#w", m68020up | cpu32 | fido_a | mcfisa_a},
{"trapgew", 4, one(0056372), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapgtw", 4, one(0057372), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"traphiw", 4, one(0051372), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"traplew", 4, one(0057772), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"traplsw", 4, one(0051772), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapltw", 4, one(0056772), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapmiw", 4, one(0055772), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapnew", 4, one(0053372), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapplw", 4, one(0055372), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"traptw", 4, one(0050372), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapvcw", 4, one(0054372), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapvsw", 4, one(0054772), one(0177777), "#w", m68020up | cpu32 | fido_a },
{"trapccl", 6, one(0052373), one(0177777), "#l", m68020up|cpu32 },
{"trapcsl", 6, one(0052773), one(0177777), "#l", m68020up|cpu32 },
{"trapeql", 6, one(0053773), one(0177777), "#l", m68020up|cpu32 },
{"trapccl", 6, one(0052373), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trapcsl", 6, one(0052773), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trapeql", 6, one(0053773), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"tpfl", 6, one(0050773), one(0177777), "#l", mcfisa_a},
{"trapfl", 6, one(0050773), one(0177777), "#l", m68020up|cpu32|mcfisa_a},
{"trapgel", 6, one(0056373), one(0177777), "#l", m68020up|cpu32 },
{"trapgtl", 6, one(0057373), one(0177777), "#l", m68020up|cpu32 },
{"traphil", 6, one(0051373), one(0177777), "#l", m68020up|cpu32 },
{"traplel", 6, one(0057773), one(0177777), "#l", m68020up|cpu32 },
{"traplsl", 6, one(0051773), one(0177777), "#l", m68020up|cpu32 },
{"trapltl", 6, one(0056773), one(0177777), "#l", m68020up|cpu32 },
{"trapmil", 6, one(0055773), one(0177777), "#l", m68020up|cpu32 },
{"trapnel", 6, one(0053373), one(0177777), "#l", m68020up|cpu32 },
{"trappll", 6, one(0055373), one(0177777), "#l", m68020up|cpu32 },
{"traptl", 6, one(0050373), one(0177777), "#l", m68020up|cpu32 },
{"trapvcl", 6, one(0054373), one(0177777), "#l", m68020up|cpu32 },
{"trapvsl", 6, one(0054773), one(0177777), "#l", m68020up|cpu32 },
{"trapfl", 6, one(0050773), one(0177777), "#l", m68020up | cpu32 | fido_a | mcfisa_a},
{"trapgel", 6, one(0056373), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trapgtl", 6, one(0057373), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"traphil", 6, one(0051373), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"traplel", 6, one(0057773), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"traplsl", 6, one(0051773), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trapltl", 6, one(0056773), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trapmil", 6, one(0055773), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trapnel", 6, one(0053373), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trappll", 6, one(0055373), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"traptl", 6, one(0050373), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trapvcl", 6, one(0054373), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trapvsl", 6, one(0054773), one(0177777), "#l", m68020up | cpu32 | fido_a },
{"trapv", 2, one(0047166), one(0177777), "", m68000up },
@ -2160,11 +2160,11 @@ TBL("tblunb", "tblunw", "tblunl", 0, 0),
{"trapx", 2, one(0047060), one(0177760), "Ts", fido_a },
{"tstb", 2, one(0045000), one(0177700), ";b", m68020up|cpu32|mcfisa_a },
{"tstb", 2, one(0045000), one(0177700), ";b", m68020up | cpu32 | fido_a | mcfisa_a },
{"tstb", 2, one(0045000), one(0177700), "$b", m68000up },
{"tstw", 2, one(0045100), one(0177700), "*w", m68020up|cpu32|mcfisa_a },
{"tstw", 2, one(0045100), one(0177700), "*w", m68020up | cpu32 | fido_a | mcfisa_a },
{"tstw", 2, one(0045100), one(0177700), "$w", m68000up },
{"tstl", 2, one(0045200), one(0177700), "*l", m68020up|cpu32|mcfisa_a },
{"tstl", 2, one(0045200), one(0177700), "*l", m68020up | cpu32 | fido_a | mcfisa_a },
{"tstl", 2, one(0045200), one(0177700), "$l", m68000up },
{"unlk", 2, one(0047130), one(0177770), "As", m68000up | mcfisa_a },