diff options
-rw-r--r-- | bfd/ChangeLog | 9 | ||||
-rw-r--r-- | bfd/archures.c | 1 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 1 | ||||
-rw-r--r-- | bfd/cpu-arc.c | 5 | ||||
-rw-r--r-- | bfd/elf32-arc.c | 6 | ||||
-rw-r--r-- | binutils/ChangeLog | 4 | ||||
-rw-r--r-- | binutils/readelf.c | 3 | ||||
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-arc.c | 3 | ||||
-rw-r--r-- | include/ChangeLog | 5 | ||||
-rw-r--r-- | include/elf/arc.h | 1 | ||||
-rw-r--r-- | include/opcode/arc.h | 1 | ||||
-rw-r--r-- | opcodes/ChangeLog | 4 | ||||
-rw-r--r-- | opcodes/arc-dis.c | 4 |
14 files changed, 50 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2ee95c6..43c9c28 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,14 @@ 2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * archures.c (bfd_mach_arc_nps400): Define. + * bfd-in2.h: Regenerate. + * cpu-arc.c (arch_info_struct): New entry for nps400, renumber + some existing entries to make space. + * elf32-arc.c (arc_elf_object_p): Add nps400 case. + (arc_elf_final_write_processing): Likewise. + +2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * elf32-arc.c (arc_elf_print_private_bfd_data): Remove use of EF_ARC_CPU_GENERIC. (arc_elf_final_write_processing): Don't bother setting cpu field diff --git a/bfd/archures.c b/bfd/archures.c index 12e3342..7ff1e82 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -359,6 +359,7 @@ DESCRIPTION .#define bfd_mach_arc_arc601 4 .#define bfd_mach_arc_arc700 3 .#define bfd_mach_arc_arcv2 5 +.#define bfd_mach_arc_nps400 6 . bfd_arch_m32c, {* Renesas M16C/M32C. *} .#define bfd_mach_m16c 0x75 .#define bfd_mach_m32c 0x78 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 13f2d6e..f02e2aa 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2174,6 +2174,7 @@ enum bfd_architecture #define bfd_mach_arc_arc601 4 #define bfd_mach_arc_arc700 3 #define bfd_mach_arc_arcv2 5 +#define bfd_mach_arc_nps400 6 bfd_arch_m32c, /* Renesas M16C/M32C. */ #define bfd_mach_m16c 0x75 #define bfd_mach_m32c 0x78 diff --git a/bfd/cpu-arc.c b/bfd/cpu-arc.c index 07a052b..472af8d 100644 --- a/bfd/cpu-arc.c +++ b/bfd/cpu-arc.c @@ -47,8 +47,9 @@ static const bfd_arch_info_type arch_info_struct[] = ARC (bfd_mach_arc_arc601, "ARC601", FALSE, &arch_info_struct[3]), ARC (bfd_mach_arc_arc700, "ARC700", FALSE, &arch_info_struct[4]), ARC (bfd_mach_arc_arc700, "A7", FALSE, &arch_info_struct[5]), - ARC (bfd_mach_arc_arcv2, "ARCv2", FALSE, &arch_info_struct[6]), - ARC (bfd_mach_arc_arcv2, "EM", FALSE, &arch_info_struct[7]), + ARC (bfd_mach_arc_nps400, "NPS400", FALSE, &arch_info_struct[6]), + ARC (bfd_mach_arc_arcv2, "ARCv2", FALSE, &arch_info_struct[7]), + ARC (bfd_mach_arc_arcv2, "EM", FALSE, &arch_info_struct[8]), ARC (bfd_mach_arc_arcv2, "HS", FALSE, NULL), }; diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index ec81852..488b86f 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -610,6 +610,9 @@ arc_elf_object_p (bfd * abfd) case E_ARC_MACH_ARC700: mach = bfd_mach_arc_arc700; break; + case E_ARC_MACH_NPS400: + mach = bfd_mach_arc_nps400; + break; case EF_ARC_CPU_ARCV2HS: case EF_ARC_CPU_ARCV2EM: mach = bfd_mach_arc_arcv2; @@ -659,6 +662,9 @@ arc_elf_final_write_processing (bfd * abfd, case bfd_mach_arc_arc700: emf = EM_ARC_COMPACT; break; + case bfd_mach_arc_nps400: + emf = EM_ARC_COMPACT; + break; case bfd_mach_arc_arcv2: emf = EM_ARC_COMPACT2; break; diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c71ba3f..805c6d8 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,5 +1,9 @@ 2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * readelf.c (decode_ARC_machine_flags): Handle nps400. + +2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * readelf.c (get_machine_flags): Move arc processing into... (decode_ARC_machine_flags): ... new function. Remove use of EF_ARC_CPU_GENERIC, change default case from "generic arc" to diff --git a/binutils/readelf.c b/binutils/readelf.c index fe23d45..5755b6b 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -2306,6 +2306,9 @@ decode_ARC_machine_flags (unsigned e_flags, unsigned e_machine, char buf[]) case E_ARC_MACH_ARC700: strcat (buf, ", ARC700"); break; + case E_ARC_MACH_NPS400: + strcat (buf, ", NPS400"); + break; /* The only times we should end up here are (a) A corrupt ELF, (b) A new ELF with new architecture being read by an old version of diff --git a/gas/ChangeLog b/gas/ChangeLog index c6aa311..3450988 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,10 @@ 2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * config/tc-arc.c (cpu_types): Add nps400 entry. + (check_zol): Handle nps400. + +2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * config/tc-arc.c (arc_select_cpu): Remove use of EF_ARC_CPU_GENERIC. diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c index 65eb0e9..2bf7f13 100644 --- a/gas/config/tc-arc.c +++ b/gas/config/tc-arc.c @@ -342,6 +342,8 @@ static const struct cpu_type E_ARC_MACH_ARC600, 0x00}, { "arc700", ARC_OPCODE_ARC700, bfd_mach_arc_arc700, E_ARC_MACH_ARC700, 0x00}, + { "nps400", ARC_OPCODE_ARC700 | ARC_OPCODE_NPS400, bfd_mach_arc_nps400, + E_ARC_MACH_NPS400, 0x00}, { "arcem", ARC_OPCODE_ARCv2EM, bfd_mach_arc_arcv2, EF_ARC_CPU_ARCV2EM, ARC_CD}, { "archs", ARC_OPCODE_ARCv2HS, bfd_mach_arc_arcv2, @@ -3655,6 +3657,7 @@ check_zol (symbolS *s) end of the ZOL label @%s"), S_GET_NAME (s)); /* Fall through. */ + case bfd_mach_arc_nps400: case bfd_mach_arc_arc700: if (arc_last_insns[0].has_delay_slot) as_bad (_("An illegal use of delay slot detected at the end of the ZOL label @%s"), diff --git a/include/ChangeLog b/include/ChangeLog index c8d14d6..3ac5b72 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,5 +1,10 @@ 2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * elf/arc.h (E_ARC_MACH_NPS400): Define. + * opcode/arc.h (ARC_OPCODE_NPS400): Define. + +2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * elf/arc.h (EF_ARC_CPU_GENERIC): Delete. Update related comment. 2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> diff --git a/include/elf/arc.h b/include/elf/arc.h index 47381f3..2aed25d 100644 --- a/include/elf/arc.h +++ b/include/elf/arc.h @@ -48,6 +48,7 @@ END_RELOC_NUMBERS (R_ARC_max) #define E_ARC_MACH_ARC600 0x00000002 #define E_ARC_MACH_ARC601 0x00000004 #define E_ARC_MACH_ARC700 0x00000003 +#define E_ARC_MACH_NPS400 0x00000007 #define EF_ARC_CPU_ARCV2EM 0x00000005 #define EF_ARC_CPU_ARCV2HS 0x00000006 diff --git a/include/opcode/arc.h b/include/opcode/arc.h index d33b878..85ea735 100644 --- a/include/opcode/arc.h +++ b/include/opcode/arc.h @@ -132,6 +132,7 @@ extern const unsigned arc_num_opcodes; #define ARC_OPCODE_ARC700 0x0002 /* ARC 700 specific insns. */ #define ARC_OPCODE_ARCv2EM 0x0004 /* ARCv2 EM specific insns. */ #define ARC_OPCODE_ARCv2HS 0x0008 /* ARCv2 HS specific insns. */ +#define ARC_OPCODE_NPS400 0x0010 /* NPS400 specific insns. */ /* CPU extensions. */ #define ARC_EA 0x0001 diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index d7180b3..f001f03 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,5 +1,9 @@ 2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * arc-dis.c (print_insn_arc): Handle nps400. + +2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com> + * arc-opc.c (BASE): Delete. 2016-03-18 Nick Clifton <nickc@redhat.com> diff --git a/opcodes/arc-dis.c b/opcodes/arc-dis.c index 7320c9f..aeb3ba6 100644 --- a/opcodes/arc-dis.c +++ b/opcodes/arc-dis.c @@ -132,6 +132,10 @@ print_insn_arc (bfd_vma memaddr, switch (info->mach) { + case bfd_mach_arc_nps400: + isa_mask = ARC_OPCODE_ARC700 | ARC_OPCODE_NPS400; + break; + case bfd_mach_arc_arc700: isa_mask = ARC_OPCODE_ARC700; break; |