From ac8cb70f3690b4eace1325c7ff918dce9073da7c Mon Sep 17 00:00:00 2001 From: Chenghua Xu Date: Wed, 29 Aug 2018 20:13:00 +0800 Subject: [MIPS] Add Loongson 3A1000 proccessor support. bfd/ * archures.c (bfd_architecture): Rename bfd_mach_mips_loongson_3a to bfd_mach_mips_gs464. * bfd-in2.h (bfd_architecture): Likewise. * cpu-mips.c (enum I_xxx): Likewise. (arch_info_struct): Likewise. * elfxx-mips.c (_bfd_elf_mips_mach): Likewise. (mips_set_isa_flags): Likewise. (mips_mach_extensions): Likewise. (bfd_mips_isa_ext_mach): Likewise. (bfd_mips_isa_ext): Likewise. (print_mips_isa_ext): Delete AFL_EXT_LOONGSON_3A. binutils/ * NEWS: Mention Loongson 3A1000 proccessor support. * readelf.c (get_machine_flags): Rename loongson-3a to gs464. (print_mips_isa_ext): Delete AFL_EXT_LOONGSON_3A. elfcpp/ * mips.c (EF_MIPS_MACH): Rename E_MIPS_MACH_LS3A to E_MIPS_MACH_GS464. gas/ * config/tc-mips.c (ISA_HAS_ODD_SINGLE_FPR): Rename CPU_LOONGSON_3A to CPU_GS464. (mips_cpu_info_table): Add gs464 descriptors, Keep loongson3a as an alias of gs464 for compatibility. * doc/as.texi (march table): Rename loongson3a to gs464. * testsuite/gas/mips/loongson-3a-mmi.d: Set "ISA Extension" flag to None. gold/ * mips.cc (Mips_mach, add_machine_extensions, elf_mips_mach): Rename loongson3a to gs464. (mips_isa_ext_mach, mips_isa_ext): Delete loongson3a. (infer_abiflags): Use ases instead of isa_ext for infer ABI flags. (elf_mips_mach_name): Rename loongson3a to gs464. include/ * elf/mips.h (E_MIPS_MACH_XXX): Rename E_MIPS_MACH_LS3A to E_MIPS_MACH_GS464. (AFL_EXT_XXX): Delete AFL_EXT_LOONGSON_3A. * opcode/mips.h (INSN_XXX): Delete INSN_LOONGSON_3A. (CPU_XXX): Rename CPU_LOONGSON_3A to CPU_GS464. * opcode/mips.h (mips_isa_table): Delete CPU_LOONGSON_3A case. ld/ * testsuite/ld-mips-elf/mips-elf-flags.exp: Rename loongson3a to gs464. opcodes/ * mips-dis.c (mips_arch_choices): Add gs464 descriptors, Keep loongson3a as an alias of gs464 for compatibility. * mips-opc.c (mips_opcodes): Change Comments. --- bfd/ChangeLog | 14 ++++++++++++++ bfd/archures.c | 2 +- bfd/bfd-in2.h | 2 +- bfd/cpu-mips.c | 4 ++-- bfd/elfxx-mips.c | 15 +++++---------- 5 files changed, 23 insertions(+), 14 deletions(-) (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d28ed5b..16ebfdd 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,19 @@ 2018-08-29 Chenghua Xu + * archures.c (bfd_architecture): Rename + bfd_mach_mips_loongson_3a to bfd_mach_mips_gs464. + * bfd-in2.h (bfd_architecture): Likewise. + * cpu-mips.c (enum I_xxx): Likewise. + (arch_info_struct): Likewise. + * elfxx-mips.c (_bfd_elf_mips_mach): Likewise. + (mips_set_isa_flags): Likewise. + (mips_mach_extensions): Likewise. + (bfd_mips_isa_ext_mach): Likewise. + (bfd_mips_isa_ext): Likewise. + (print_mips_isa_ext): Delete AFL_EXT_LOONGSON_3A. + +2018-08-29 Chenghua Xu + * elfxx-mips.c (print_mips_ases): Add Loongson EXT2 extension. 2018-08-29 Chenghua Xu diff --git a/bfd/archures.c b/bfd/archures.c index b0e9230..f247eaa 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -175,7 +175,7 @@ DESCRIPTION .#define bfd_mach_mips5 5 .#define bfd_mach_mips_loongson_2e 3001 .#define bfd_mach_mips_loongson_2f 3002 -.#define bfd_mach_mips_loongson_3a 3003 +.#define bfd_mach_mips_gs464 3003 .#define bfd_mach_mips_sb1 12310201 {* octal 'SB', 01. *} .#define bfd_mach_mips_octeon 6501 .#define bfd_mach_mips_octeonp 6601 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 46a085f..dc8e514 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2069,7 +2069,7 @@ enum bfd_architecture #define bfd_mach_mips5 5 #define bfd_mach_mips_loongson_2e 3001 #define bfd_mach_mips_loongson_2f 3002 -#define bfd_mach_mips_loongson_3a 3003 +#define bfd_mach_mips_gs464 3003 #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01. */ #define bfd_mach_mips_octeon 6501 #define bfd_mach_mips_octeonp 6601 diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c index cb50c64..f578d95 100644 --- a/bfd/cpu-mips.c +++ b/bfd/cpu-mips.c @@ -98,7 +98,7 @@ enum I_sb1, I_loongson_2e, I_loongson_2f, - I_loongson_3a, + I_gs464, I_mipsocteon, I_mipsocteonp, I_mipsocteon2, @@ -150,7 +150,7 @@ static const bfd_arch_info_type arch_info_struct[] = N (64, 64, bfd_mach_mips_sb1, "mips:sb1", FALSE, NN(I_sb1)), N (64, 64, bfd_mach_mips_loongson_2e, "mips:loongson_2e", FALSE, NN(I_loongson_2e)), N (64, 64, bfd_mach_mips_loongson_2f, "mips:loongson_2f", FALSE, NN(I_loongson_2f)), - N (64, 64, bfd_mach_mips_loongson_3a, "mips:loongson_3a", FALSE, NN(I_loongson_3a)), + N (64, 64, bfd_mach_mips_gs464, "mips:gs464", FALSE, NN(I_gs464)), N (64, 64, bfd_mach_mips_octeon,"mips:octeon", FALSE, NN(I_mipsocteon)), N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+", FALSE, NN(I_mipsocteonp)), N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2", FALSE, NN(I_mipsocteon2)), diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 8d1e4f2..f880fa3 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -6787,8 +6787,8 @@ _bfd_elf_mips_mach (flagword flags) case E_MIPS_MACH_LS2F: return bfd_mach_mips_loongson_2f; - case E_MIPS_MACH_LS3A: - return bfd_mach_mips_loongson_3a; + case E_MIPS_MACH_GS464: + return bfd_mach_mips_gs464; case E_MIPS_MACH_OCTEON3: return bfd_mach_mips_octeon3; @@ -11984,8 +11984,8 @@ mips_set_isa_flags (bfd *abfd) val = E_MIPS_ARCH_64 | E_MIPS_MACH_SB1; break; - case bfd_mach_mips_loongson_3a: - val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_LS3A; + case bfd_mach_mips_gs464: + val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_GS464; break; case bfd_mach_mips_octeon: @@ -13993,7 +13993,7 @@ static const struct mips_mach_extension mips_mach_extensions[] = { bfd_mach_mips_octeon2, bfd_mach_mips_octeonp }, { bfd_mach_mips_octeonp, bfd_mach_mips_octeon }, { bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 }, - { bfd_mach_mips_loongson_3a, bfd_mach_mipsisa64r2 }, + { bfd_mach_mips_gs464, bfd_mach_mipsisa64r2 }, /* MIPS64 extensions. */ { bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 }, @@ -14105,7 +14105,6 @@ bfd_mips_isa_ext_mach (unsigned int isa_ext) case AFL_EXT_10000: return bfd_mach_mips10000; case AFL_EXT_LOONGSON_2E: return bfd_mach_mips_loongson_2e; case AFL_EXT_LOONGSON_2F: return bfd_mach_mips_loongson_2f; - case AFL_EXT_LOONGSON_3A: return bfd_mach_mips_loongson_3a; case AFL_EXT_SB1: return bfd_mach_mips_sb1; case AFL_EXT_OCTEON: return bfd_mach_mips_octeon; case AFL_EXT_OCTEONP: return bfd_mach_mips_octeonp; @@ -14134,7 +14133,6 @@ bfd_mips_isa_ext (bfd *abfd) case bfd_mach_mips10000: return AFL_EXT_10000; case bfd_mach_mips_loongson_2e: return AFL_EXT_LOONGSON_2E; case bfd_mach_mips_loongson_2f: return AFL_EXT_LOONGSON_2F; - case bfd_mach_mips_loongson_3a: return AFL_EXT_LOONGSON_3A; case bfd_mach_mips_sb1: return AFL_EXT_SB1; case bfd_mach_mips_octeon: return AFL_EXT_OCTEON; case bfd_mach_mips_octeonp: return AFL_EXT_OCTEONP; @@ -15709,9 +15707,6 @@ print_mips_isa_ext (FILE *file, unsigned int isa_ext) case AFL_EXT_OCTEONP: fputs ("Cavium Networks OcteonP", file); break; - case AFL_EXT_LOONGSON_3A: - fputs ("Loongson 3A", file); - break; case AFL_EXT_OCTEON: fputs ("Cavium Networks Octeon", file); break; -- cgit v1.1