From 3bdcfdf41f04c851af504aa0b653e0c806a930f4 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Mon, 8 Jan 2007 18:42:37 +0000 Subject: [PATCH] bfd/ * 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. --- bfd/ChangeLog | 15 ++++ bfd/archures.c | 2 +- bfd/bfd-in2.h | 2 +- bfd/cpu-m68k.c | 24 ++++- bfd/elf32-m68k.c | 29 +++--- binutils/ChangeLog | 5 ++ binutils/readelf.c | 8 +- gas/ChangeLog | 8 ++ gas/config/tc-m68k.c | 12 ++- include/elf/ChangeLog | 6 ++ include/elf/m68k.h | 10 +-- include/opcode/ChangeLog | 4 + include/opcode/m68k.h | 2 +- opcodes/ChangeLog | 5 ++ opcodes/m68k-opc.c | 184 +++++++++++++++++++-------------------- 15 files changed, 186 insertions(+), 130 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 402b0a3db72..6bbe72a4dac 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,18 @@ +2007-01-08 Kazu Hirata + + * 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 * config.bfd: Renamed target x86_64-*-mingw64 to x86_64-*-mingw*. diff --git a/bfd/archures.c b/bfd/archures.c index 89a3805f434..a9fca3bffd3 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -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 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index d82d4689783..da24ce5078a 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -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 diff --git a/bfd/cpu-m68k.c b/bfd/cpu-m68k.c index ee45ffe6af2..2e6f6c69050 100644 --- a/bfd/cpu-m68k.c +++ b/bfd/cpu-m68k.c @@ -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 diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c index 1c04a6986b5..ad7e56f1ded 100644 --- a/bfd/elf32-m68k.c +++ b/bfd/elf32-m68k.c @@ -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) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 33ae9043ddb..893c00b7686 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2007-01-08 Kazu Hirata + + * readelf.c (get_machine_flags): Treat Fido as an architecture + by itself. + 2007-01-08 Kai Tietz * configure.in: Renamed target x86_64-*-mingw64 to diff --git a/binutils/readelf.c b/binutils/readelf.c index 2aa6ef0e2f3..8f19a32ed41 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -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"); diff --git a/gas/ChangeLog b/gas/ChangeLog index 3b7a57a9c50..57689164284 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2007-01-08 Kazu Hirata + + * 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 * configure.tgt: Renamed target x86_64-*-mingw64 to x86_64-*-mingw* diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index 661c99ca18d..c0aba896319 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -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; diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index c3dd1168dbb..5504cb07f64 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,9 @@ +2007-01-08 Kazu Hirata + + * 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 * m68k.h (EF_M68K_CPU32_FIDO_A, EF_M68K_CPU32_MASK): New. diff --git a/include/elf/m68k.h b/include/elf/m68k.h index 8751729672a..a9f2203a688 100644 --- a/include/elf/m68k.h +++ b/include/elf/m68k.h @@ -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 diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 526593b0a6c..a0b321f0906 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,7 @@ +2007-01-08 Kazu Hirata + + * m68k.h (m68010up): OR fido_a. + 2006-12-25 Kazu Hirata * m68k.h (fido_a): New. diff --git a/include/opcode/m68k.h b/include/opcode/m68k.h index ca0b4d98d4c..f87a7a379ca 100644 --- a/include/opcode/m68k.h +++ b/include/opcode/m68k.h @@ -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) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 7e43932364a..c28285c2f42 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2007-01-08 Kazu Hirata + + * m68k-opc.c (m68k_opcodes): Replace cpu32 with + cpu32 | fido_a except on tbl instructions. + 2007-01-04 Paul Brook * arm-dis.c (arm_opcodes): Fix cpsie and cpsid entries. diff --git a/opcodes/m68k-opc.c b/opcodes/m68k-opc.c index 51b62d4e1c3..c3948cf0975 100644 --- a/opcodes/m68k-opc.c +++ b/opcodes/m68k-opc.c @@ -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 }, - -{"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 }, +{"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 | 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 }, - -{"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 }, +{"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 | 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 }, -- 2.30.2