aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-m68k.c
diff options
context:
space:
mode:
authorKazu Hirata <kazu@codesourcery.com>2007-01-08 18:42:37 +0000
committerKazu Hirata <kazu@codesourcery.com>2007-01-08 18:42:37 +0000
commit3bdcfdf41f04c851af504aa0b653e0c806a930f4 (patch)
treec3b84f2be979ef63edfcca340ffb50b340af54fa /bfd/elf32-m68k.c
parent00fa51f6801ada6b33763db75f5cdab6c74ea90b (diff)
downloadfsf-binutils-gdb-3bdcfdf41f04c851af504aa0b653e0c806a930f4.zip
fsf-binutils-gdb-3bdcfdf41f04c851af504aa0b653e0c806a930f4.tar.gz
fsf-binutils-gdb-3bdcfdf41f04c851af504aa0b653e0c806a930f4.tar.bz2
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.
Diffstat (limited to 'bfd/elf32-m68k.c')
-rw-r--r--bfd/elf32-m68k.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 1c04a69..ad7e56f 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)