From 8d100c328c3dc2d4796a0a4532ae90de39fc97b9 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Tue, 11 Sep 2007 16:07:50 +0000 Subject: [PATCH] bfd/ * archures.c: Add bfd_mach_mcf_isa_c_nodiv, bfd_mach_mcf_isa_c_nodiv_mac & bfd_mach_mcf_isa_c_nodiv_emac. * ieee.c (ieee_write_processor): Update coldfire architecture list. * bfd-in2.h: Rebuilt. * cpu-m68k.c (arch_info_struct): Add isa_c nodiv architectures. (m68k_arch_features): Likewise. * elf32-m68k.c (elf32_m68k_object_p): Add EF_M68K_CF_ISA_C_NODIV. (elf32_m68k_print_private_bfd_data): Likewise. gas/ * config/tc-m68k.c (m68k_ip): Add mcfisa_c case. (m68k_elf_final_processing): Add EF_M68K_CF_ISA_C_NODIV. include/elf/ * m68k.h (EF_M68K_CF_ISA_C_NODIV): New. --- bfd/ChangeLog | 12 ++++++++++++ bfd/archures.c | 3 +++ bfd/bfd-in2.h | 3 +++ bfd/cpu-m68k.c | 27 ++++++++++++++++++--------- bfd/elf32-m68k.c | 7 +++++++ bfd/ieee.c | 6 ++++++ gas/ChangeLog | 5 +++++ gas/config/tc-m68k.c | 4 ++++ include/elf/ChangeLog | 4 ++++ include/elf/m68k.h | 1 + 10 files changed, 63 insertions(+), 9 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cba32ae5aa..eb7c625e3c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,15 @@ +2007-09-11 Nathan Sidwell + + * archures.c: Add bfd_mach_mcf_isa_c_nodiv, + bfd_mach_mcf_isa_c_nodiv_mac & bfd_mach_mcf_isa_c_nodiv_emac. + * ieee.c (ieee_write_processor): Update coldfire architecture + list. + * bfd-in2.h: Rebuilt. + * cpu-m68k.c (arch_info_struct): Add isa_c nodiv architectures. + (m68k_arch_features): Likewise. + * elf32-m68k.c (elf32_m68k_object_p): Add EF_M68K_CF_ISA_C_NODIV. + (elf32_m68k_print_private_bfd_data): Likewise. + 2007-09-11 Jan Beulich * elf64-i386.c (elf64_i386_tls_transition): Remove redundant 'const'. diff --git a/bfd/archures.c b/bfd/archures.c index 67d1b5cc6e..8f19b7edac 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -101,6 +101,9 @@ DESCRIPTION .#define bfd_mach_mcf_isa_c 26 .#define bfd_mach_mcf_isa_c_mac 27 .#define bfd_mach_mcf_isa_c_emac 28 +.#define bfd_mach_mcf_isa_c_nodiv 29 +.#define bfd_mach_mcf_isa_c_nodiv_mac 30 +.#define bfd_mach_mcf_isa_c_nodiv_emac 31 . bfd_arch_vax, {* DEC Vax *} . bfd_arch_i960, {* Intel 960 *} . {* The order of the following is important. diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 317d32e01d..d3228d05e4 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1772,6 +1772,9 @@ enum bfd_architecture #define bfd_mach_mcf_isa_c 26 #define bfd_mach_mcf_isa_c_mac 27 #define bfd_mach_mcf_isa_c_emac 28 +#define bfd_mach_mcf_isa_c_nodiv 29 +#define bfd_mach_mcf_isa_c_nodiv_mac 30 +#define bfd_mach_mcf_isa_c_nodiv_emac 31 bfd_arch_vax, /* DEC Vax */ bfd_arch_i960, /* Intel 960 */ /* The order of the following is important. diff --git a/bfd/cpu-m68k.c b/bfd/cpu-m68k.c index e23998832e..a82c4ee4af 100644 --- a/bfd/cpu-m68k.c +++ b/bfd/cpu-m68k.c @@ -83,19 +83,25 @@ static const bfd_arch_info_type arch_info_struct[] = FALSE, &arch_info_struct[27]), N(bfd_mach_mcf_isa_c_emac, "m68k:isa-c:emac", FALSE, &arch_info_struct[28]), + N(bfd_mach_mcf_isa_c_nodiv, "m68k:isa-c:nodiv", + FALSE, &arch_info_struct[29]), + N(bfd_mach_mcf_isa_c_nodiv_mac, "m68k:isa-c:nodiv:mac", + FALSE, &arch_info_struct[30]), + N(bfd_mach_mcf_isa_c_nodiv_emac, "m68k:isa-c:nodiv:emac", + FALSE, &arch_info_struct[31]), /* Legacy names for CF architectures */ - N(bfd_mach_mcf_isa_a_nodiv, "m68k:5200", FALSE, &arch_info_struct[29]), - N(bfd_mach_mcf_isa_a_mac,"m68k:5206e", FALSE, &arch_info_struct[30]), - N(bfd_mach_mcf_isa_a_mac, "m68k:5307", FALSE, &arch_info_struct[31]), - N(bfd_mach_mcf_isa_b_nousp_mac, "m68k:5407", FALSE, &arch_info_struct[32]), - N(bfd_mach_mcf_isa_aplus_emac, "m68k:528x", FALSE, &arch_info_struct[33]), - N(bfd_mach_mcf_isa_aplus_emac, "m68k:521x", FALSE, &arch_info_struct[34]), - N(bfd_mach_mcf_isa_a_emac, "m68k:5249", FALSE, &arch_info_struct[35]), + N(bfd_mach_mcf_isa_a_nodiv, "m68k:5200", FALSE, &arch_info_struct[32]), + N(bfd_mach_mcf_isa_a_mac,"m68k:5206e", FALSE, &arch_info_struct[33]), + N(bfd_mach_mcf_isa_a_mac, "m68k:5307", FALSE, &arch_info_struct[34]), + N(bfd_mach_mcf_isa_b_nousp_mac, "m68k:5407", FALSE, &arch_info_struct[35]), + N(bfd_mach_mcf_isa_aplus_emac, "m68k:528x", FALSE, &arch_info_struct[36]), + N(bfd_mach_mcf_isa_aplus_emac, "m68k:521x", FALSE, &arch_info_struct[37]), + N(bfd_mach_mcf_isa_a_emac, "m68k:5249", FALSE, &arch_info_struct[38]), N(bfd_mach_mcf_isa_b_float_emac, "m68k:547x", - FALSE, &arch_info_struct[36]), + FALSE, &arch_info_struct[39]), N(bfd_mach_mcf_isa_b_float_emac, "m68k:548x", - FALSE, &arch_info_struct[37]), + FALSE, &arch_info_struct[40]), N(bfd_mach_mcf_isa_b_float_emac, "m68k:cfv4e", FALSE, 0), }; @@ -135,6 +141,9 @@ static const unsigned m68k_arch_features[] = mcfisa_a|mcfhwdiv|mcfisa_c|mcfusp, mcfisa_a|mcfhwdiv|mcfisa_c|mcfusp|mcfmac, mcfisa_a|mcfhwdiv|mcfisa_c|mcfusp|mcfemac, + mcfisa_a|mcfisa_c|mcfusp, + mcfisa_a|mcfisa_c|mcfusp|mcfmac, + mcfisa_a|mcfisa_c|mcfusp|mcfemac, }; /* Return the count of bits set in MASK */ diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c index ffa1668ada..b48c09cb8d 100644 --- a/bfd/elf32-m68k.c +++ b/bfd/elf32-m68k.c @@ -506,6 +506,9 @@ elf32_m68k_object_p (bfd *abfd) case EF_M68K_CF_ISA_C: features |= mcfisa_a|mcfisa_c|mcfhwdiv|mcfusp; break; + case EF_M68K_CF_ISA_C_NODIV: + features |= mcfisa_a|mcfisa_c|mcfusp; + break; } switch (eflags & EF_M68K_CF_MAC_MASK) { @@ -658,6 +661,10 @@ elf32_m68k_print_private_bfd_data (abfd, ptr) case EF_M68K_CF_ISA_C: isa = "C"; break; + case EF_M68K_CF_ISA_C_NODIV: + isa = "C"; + additional = " [nodiv]"; + break; } fprintf (file, " [isa %s]%s", isa, additional); if (eflags & EF_M68K_CF_FLOAT) diff --git a/bfd/ieee.c b/bfd/ieee.c index 6efd978e17..d032e9c133 100644 --- a/bfd/ieee.c +++ b/bfd/ieee.c @@ -3487,6 +3487,12 @@ ieee_write_processor (bfd *abfd) case bfd_mach_mcf_isa_b_float: id = "isa-b:float"; break; case bfd_mach_mcf_isa_b_float_mac: id = "isa-b:float:mac"; break; case bfd_mach_mcf_isa_b_float_emac: id = "isa-b:float:emac"; break; + case bfd_mach_mcf_isa_c: id = "isa-c"; break; + case bfd_mach_mcf_isa_c_mac: id = "isa-c:mac"; break; + case bfd_mach_mcf_isa_c_emac: id = "isa-c:emac"; break; + case bfd_mach_mcf_isa_c_nodiv: id = "isa-c:nodiv"; break; + case bfd_mach_mcf_isa_c_nodiv_mac: id = "isa-c:nodiv:mac"; break; + case bfd_mach_mcf_isa_c_nodiv_emac: id = "isa-c:nodiv:emac"; break; } if (! ieee_write_id (abfd, id)) diff --git a/gas/ChangeLog b/gas/ChangeLog index 18f054c21b..1d13235e74 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2007-09-11 Nathan Sidwell + + * config/tc-m68k.c (m68k_ip): Add mcfisa_c case. + (m68k_elf_final_processing): Add EF_M68K_CF_ISA_C_NODIV. + 2007-09-09 H.J. Lu * tc-i386.c (output_insn): Only check SSE4.2 and ABM for 3 diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index d4e21ceb46..57163ce3f5 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -2186,6 +2186,9 @@ m68k_ip (char *instring) case mcfisa_b: APPEND (_("ColdFire ISA_B")); break; + case mcfisa_c: + APPEND (_("ColdFire ISA_C")); + break; case cfloat: APPEND (_("ColdFire fpu")); break; @@ -7749,6 +7752,7 @@ m68k_elf_final_processing (void) {EF_M68K_CF_ISA_B_NOUSP,mcfisa_a|mcfisa_b|mcfhwdiv}, {EF_M68K_CF_ISA_B, mcfisa_a|mcfisa_b|mcfhwdiv|mcfusp}, {EF_M68K_CF_ISA_C, mcfisa_a|mcfisa_c|mcfhwdiv|mcfusp}, + {EF_M68K_CF_ISA_C_NODIV,mcfisa_a|mcfisa_c|mcfusp}, {0,0}, }; static const unsigned mac_features[][2] = diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index c24893d169..939c371c13 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,7 @@ +2007-09-11 Nathan Sidwell + + * m68k.h (EF_M68K_CF_ISA_C_NODIV): New. + 2007-08-25 Ulrich Weigand * common.h (NT_SPU): Define. diff --git a/include/elf/m68k.h b/include/elf/m68k.h index a9f2203a68..23b269a822 100644 --- a/include/elf/m68k.h +++ b/include/elf/m68k.h @@ -71,6 +71,7 @@ END_RELOC_NUMBERS (R_68K_max) #define EF_M68K_CF_ISA_B_NOUSP 0x04 /* ISA_B except for USP */ #define EF_M68K_CF_ISA_B 0x05 #define EF_M68K_CF_ISA_C 0x06 +#define EF_M68K_CF_ISA_C_NODIV 0x07 /* ISA C except for div */ #define EF_M68K_CF_MAC_MASK 0x30 #define EF_M68K_CF_MAC 0x10 /* MAC */ #define EF_M68K_CF_EMAC 0x20 /* EMAC */ -- 2.34.1