* bfd/archures.c (bfd_mach_mcf5200, bfd_mach_mcf5206e,
bfd_mach_mcf5307, bfd_mach_mcf5407, bfd_mach_mcf528x, bfd_mach_mcfv4e, bfd_mach_mcf521x, bfd_mach_mcf5249, bfd_mach_mcf547x, bfd_mach_mcf548x): Remove. (bfd_mach_mcf_isa_a, bfd_mach_mcf_isa_a_div, bfd_mach_mcf_isa_a_div_mac, bfd_mach_mcf_isa_a_div_emac, bfd_mach_mcf_isa_aplus, bfd_mach_mcf_isa_aplus_mac, bfd_mach_mcf_isa_aplus_emac, bfd_mach_mcf_isa_aplus_usp, bfd_mach_mcf_isa_aplus_usp_mac, bfd_mach_mcf_isa_aplus_usp_emac, bfd_mach_mcf_isa_b, bfd_mach_mcf_isa_b_mac, bfd_mach_mcf_isa_b_emac, bfd_mach_mcf_isa_b_usp_float, bfd_mach_mcf_isa_b_usp_float_mac, bfd_mach_mcf_isa_b_usp_float_emac): New. (bfd_default_scan): Update coldfire mapping. * bfd/bfd-in.h (bfd_m68k_mach_to_features, bfd_m68k_features_to_mach): Declare. * bfd/bfd-in2.h: Rebuilt. * bfd/cpu-m68k.c (arch_info_struct): Add new coldfire machines, adjust legacy names. (m68k_arch_features): New. (bfd_m68k_mach_to_features, bfd_m68k_features_to_mach): Define. * bfd/elf32-m68k.c (elf32_m68k_object_p): New. (elf32_m68k_merge_private_bfd_data): Merge the CF EF flags. (elf32_m68k_print_private_bfd_data): Print the CF EF flags. (elf_backend_object_p): Define. * bfd/ieee.c (ieee_write_processor): Update coldfire machines. * bfd/libbfd.h: Rebuilt. * gas/config/tc-m68k.c (mcf5208_control_regs, mcf5213_control_regs, mcf5329_control_regs): New. (not_current_architecture, selected_arch, selected_cpu): New. (m68k_archs, m68k_extensions): New. (archs): Renamed to ... (m68k_cpus): ... here. Adjust. (n_arches): Remove. (md_pseudo_table): Add arch and cpu directives. (find_cf_chip, m68k_ip): Adjust table scanning. (no_68851, no_68881): Remove. (md_assemble): Lazily initialize. (select_control_regs): Adjust cpu names. Add 5208, 5213, 5329. (md_init_after_args): Move functionality to m68k_init_arch. (mri_chip): Adjust table scanning. (md_parse_option): Reimplement 'm' processing to add -march & -mcpu options with saner parsing. (m68k_lookup_cpu, m68k_set_arch, m68k_set_cpu, m68k_set_extension, m68k_init_arch): New. (s_m68k_cpu, s_m68k_arch): New. (md_show_usage): Adjust. (m68k_elf_final_processing): Set CF EF flags. * gas/config/tc-m68k.h (m68k_init_after_args): Remove. (tc_init_after_args): Remove. * gas/doc/c-m68k.texi (M68K-Opts): Document -march, -mcpu options. (M68k-Directives): Document .arch and .cpu directives. * gas/testsuite/gas/m68k/all.exp: Add arch-cpu-1 test. * gas/testsuite/gas/m68k/arch-cpu-1.[sd]: New. * include/elf/m68k.h (EF_CPU32, EF_M68000, EF_CFV4E): Rename to ... (EF_M68K_CPU32, EF_M68K_M68000, EF_M68K_CFV4E): ... here. (EF_M68K_ISA_MASK, EF_M68K_ISA_A, EF_M68K_M68K_ISA_A_PLUS, EF_M68K_ISA_B, EF_M68K_HW_DIV, EF_M68K_MAC_MASK, EF_M68K_MAC, EF_M68K_EMAC, EF_M68K_USP, EF_M68K_FLOAT): New. * include/opcode/m68k.h (m68008, m68ec030, m68882): Remove. (m68k_mask): New. (cpu_m68k, cpu_cf): New. (mcf5200, mcf5206e, mcf521x, mcf5249, mcf528x, mcf5307, mcf5407, mcf5470, mcf5480): Rename to cpu_<foo>. Add m680x0 variants. * opcodes/m68k-dis.c (print_insn_m68k): Use bfd_m68k_mach_to_features. * binutils/readelf.c (get_machine_flags): Add logic for EF_M68K flags.
This commit is contained in:
parent
f9fa511d46
commit
86fdf2166a
|
@ -1,3 +1,15 @@
|
|||
2006-02-07 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* m68k.h (EF_CPU32, EF_M68000, EF_CFV4E): Rename to ...
|
||||
(EF_M68K_CPU32, EF_M68K_M68000, EF_M68K_CFV4E): ... here.
|
||||
(EF_M68K_ISA_MASK, EF_M68K_ISA_A, EF_M68K_M68K_ISA_A_PLUS,
|
||||
EF_M68K_ISA_B, EF_M68K_HW_DIV, EF_M68K_MAC_MASK, EF_M68K_MAC,
|
||||
EF_M68K_EMAC, EF_M68K_USP, EF_M68K_FLOAT): New.
|
||||
|
||||
2006-02-06 Steve Ellcey <sje@cup.hp.com>
|
||||
|
||||
* ia64.h (SHF_IA_64_HP_TLS): New.
|
||||
|
||||
2006-01-18 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
Introduce TLS descriptors for i386 and x86_64.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* MC68k ELF support for BFD.
|
||||
Copyright 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
|
||||
Copyright 1998, 1999, 2000, 2002, 2005, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
|
||||
|
@ -52,8 +52,22 @@ START_RELOC_NUMBERS (elf_m68k_reloc_type)
|
|||
RELOC_NUMBER (R_68K_GNU_VTENTRY, 24)
|
||||
END_RELOC_NUMBERS (R_68K_max)
|
||||
|
||||
#define EF_CPU32 0x00810000
|
||||
#define EF_M68000 0x01000000
|
||||
#define EF_CFV4E 0x00008000
|
||||
#define EF_M68K_CPU32 0x00810000
|
||||
#define EF_M68K_M68000 0x01000000
|
||||
#define EF_M68K_CFV4E 0x00008000
|
||||
|
||||
/* We use the bottom 8 bits to encode information about the
|
||||
coldfire variant. */
|
||||
#define EF_M68K_ISA_MASK 0x07 /* Which ISA */
|
||||
#define EF_M68K_ISA_A 0x01
|
||||
#define EF_M68K_ISA_A_PLUS 0x02
|
||||
#define EF_M68K_ISA_B 0x03
|
||||
#define EF_M68K_HW_DIV 0x08 /* Has HW divide */
|
||||
#define EF_M68K_MAC_MASK 0x30
|
||||
#define EF_M68K_MAC 0x10 /* Has MAC */
|
||||
#define EF_M68K_EMAC 0x20 /* Has EMAC */
|
||||
#define EF_M68K_USP 0x40 /* Has USP insns */
|
||||
#define EF_M68K_FLOAT 0x80 /* Has float insns */
|
||||
#define EF_M68K_CF_MASK 0xFF
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Opcode table header for m680[01234]0/m6888[12]/m68851.
|
||||
Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, 2001,
|
||||
2003, 2004 Free Software Foundation, Inc.
|
||||
2003, 2004, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB, GAS, and the GNU binutils.
|
||||
|
||||
|
@ -23,19 +23,15 @@
|
|||
structure. */
|
||||
#define _m68k_undef 0
|
||||
#define m68000 0x001
|
||||
#define m68008 m68000 /* Synonym for -m68000. otherwise unused. */
|
||||
#define m68010 0x002
|
||||
#define m68020 0x004
|
||||
#define m68030 0x008
|
||||
#define m68ec030 m68030 /* Similar enough to -m68030 to ignore differences;
|
||||
gas will deal with the few differences. */
|
||||
#define m68040 0x010
|
||||
/* There is no 68050. */
|
||||
#define m68060 0x020
|
||||
#define m68881 0x040
|
||||
#define m68882 m68881 /* Synonym for -m68881. otherwise unused. */
|
||||
#define m68851 0x080
|
||||
#define cpu32 0x100 /* e.g., 68332 */
|
||||
#define m68k_mask 0x1ff
|
||||
|
||||
#define mcfmac 0x200 /* ColdFire MAC. */
|
||||
#define mcfemac 0x400 /* ColdFire EMAC. */
|
||||
|
@ -47,26 +43,54 @@
|
|||
#define mcfisa_b 0x8000 /* ColdFire ISA_B. */
|
||||
#define mcfusp 0x10000 /* ColdFire USP instructions. */
|
||||
|
||||
#define mcf5200 0x20000
|
||||
#define mcf5206e 0x40000
|
||||
#define mcf521x 0x80000
|
||||
#define mcf5249 0x100000
|
||||
#define mcf528x 0x200000
|
||||
#define mcf5307 0x400000
|
||||
#define mcf5407 0x800000
|
||||
#define mcf5470 0x1000000
|
||||
#define mcf5480 0x2000000
|
||||
|
||||
/* Handy aliases. */
|
||||
/* Handy aliases. */
|
||||
#define m68040up (m68040 | m68060)
|
||||
#define m68030up (m68030 | m68040up)
|
||||
#define m68020up (m68020 | m68030up)
|
||||
#define m68010up (m68010 | cpu32 | m68020up)
|
||||
#define m68000up (m68000 | m68010up)
|
||||
|
||||
#define mfloat (m68881 | m68882 | m68040 | m68060)
|
||||
#define mfloat (m68881 | m68040 | m68060)
|
||||
#define mmmu (m68851 | m68030 | m68040 | m68060)
|
||||
|
||||
/* CPU numbering. There are too many of these to use a bit vector.
|
||||
These are a one-of-many selection. Choose a numbering scheme that
|
||||
simply maps onto manufacturer's part numbers. */
|
||||
|
||||
/* All m68k cpus */
|
||||
#define cpu_m68k 0
|
||||
/* All coldfire cpus */
|
||||
#define cpu_cf 1000000
|
||||
|
||||
#define cpu_m68000 (cpu_m68k + 68000)
|
||||
#define cpu_m68008 cpu_m68000 /* Synonym for -m68000. otherwise unused. */
|
||||
#define cpu_m68010 (cpu_m68k + 68010)
|
||||
#define cpu_m68020 (cpu_m68k + 68020)
|
||||
#define cpu_m68030 (cpu_m68k + 68030)
|
||||
#define cpu_m68ec030 cpu_m68030 /* Similar enough to -m68030 to ignore
|
||||
differences; gas will deal with the few
|
||||
differences. */
|
||||
#define cpu_m68040 (cpu_m68k + 68040)
|
||||
/* There is no 68050. */
|
||||
#define cpu_m68060 (cpu_m68k + 68060)
|
||||
#define cpu_m68851 (cpu_m68k + 68851)
|
||||
#define cpu_m68881 (cpu_m68k + 68881)
|
||||
#define cpu_m68882 cpu_m68881 /* Synonym for -m68881. otherwise unused. */
|
||||
#define cpu_cpu32 (cpu_m68k + 32)
|
||||
|
||||
#define cpu_cf5200 (cpu_cf + 5200)
|
||||
#define cpu_cf5206e (cpu_cf + 5206)
|
||||
#define cpu_cf5208 (cpu_cf + 5208)
|
||||
#define cpu_cf521x (cpu_cf + 5210)
|
||||
#define cpu_cf5213 (cpu_cf + 5213)
|
||||
#define cpu_cf5249 (cpu_cf + 5249)
|
||||
#define cpu_cf528x (cpu_cf + 5280)
|
||||
#define cpu_cf5307 (cpu_cf + 5307)
|
||||
#define cpu_cf5329 (cpu_cf + 5329)
|
||||
#define cpu_cf5407 (cpu_cf + 5407)
|
||||
#define cpu_cf547x (cpu_cf + 5470)
|
||||
#define cpu_cf548x (cpu_cf + 5480)
|
||||
|
||||
/* The structure used to hold information for an opcode. */
|
||||
|
||||
struct m68k_opcode
|
||||
|
|
Loading…
Reference in New Issue