diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 15 | ||||
-rw-r--r-- | bfd/archures.c | 1 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 1 | ||||
-rw-r--r-- | bfd/cpu-mips.c | 2 | ||||
-rw-r--r-- | bfd/elfxx-mips.c | 13 |
5 files changed, 32 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d861257..87297d0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,18 @@ +2014-10-31 Andrew Pinski <apinski@cavium.com> + Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> + + * archures.c: Add octeon3 for mips target. + * bfd-in2.h: Regenerate. + * bfd/cpu-mips.c: Define I_mipsocteon3. + nfo_struct): Add octeon3 support. + * bfd/elfxx-mips.c: (_bfd_elf_mips_mach): Add support for + octeon3. + (mips_set_isa_flags): Add support for octeon3. + (bfd_mips_isa_ext): Add bfd_mach_mips_octeon3. + (mips_mach_extensions): Make bfd_mach_mips_octeon3 an + extension of bfd_mach_mips_octeon2. + (print_mips_isa_ext): Print the value of Octeon3. + 2014-10-31 Nick Clifton <nickc@redhat.com> PR binutils/17512 diff --git a/bfd/archures.c b/bfd/archures.c index c9fd6c8..5e069b2 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -179,6 +179,7 @@ DESCRIPTION .#define bfd_mach_mips_octeon 6501 .#define bfd_mach_mips_octeonp 6601 .#define bfd_mach_mips_octeon2 6502 +.#define bfd_mach_mips_octeon3 6503 .#define bfd_mach_mips_xlr 887682 {* decimal 'XLR' *} .#define bfd_mach_mipsisa32 32 .#define bfd_mach_mipsisa32r2 33 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index c7a2bb5..433b171 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1966,6 +1966,7 @@ enum bfd_architecture #define bfd_mach_mips_octeon 6501 #define bfd_mach_mips_octeonp 6601 #define bfd_mach_mips_octeon2 6502 +#define bfd_mach_mips_octeon3 6503 #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */ #define bfd_mach_mipsisa32 32 #define bfd_mach_mipsisa32r2 33 diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c index b617aaa..a376944 100644 --- a/bfd/cpu-mips.c +++ b/bfd/cpu-mips.c @@ -102,6 +102,7 @@ enum I_mipsocteon, I_mipsocteonp, I_mipsocteon2, + I_mipsocteon3, I_xlr, I_micromips }; @@ -152,6 +153,7 @@ static const bfd_arch_info_type arch_info_struct[] = 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)), + N (64, 64, bfd_mach_mips_octeon3, "mips:octeon3", FALSE, NN(I_mipsocteon3)), N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)), N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,0) }; diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 61c363a..f82102a 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -6588,6 +6588,9 @@ _bfd_elf_mips_mach (flagword flags) case E_MIPS_MACH_LS3A: return bfd_mach_mips_loongson_3a; + case E_MIPS_MACH_OCTEON3: + return bfd_mach_mips_octeon3; + case E_MIPS_MACH_OCTEON2: return bfd_mach_mips_octeon2; @@ -11859,6 +11862,10 @@ mips_set_isa_flags (bfd *abfd) val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON; break; + case bfd_mach_mips_octeon3: + val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON3; + break; + case bfd_mach_mips_xlr: val = E_MIPS_ARCH_64 | E_MIPS_MACH_XLR; break; @@ -13905,6 +13912,8 @@ bfd_mips_isa_ext (bfd *abfd) return AFL_EXT_OCTEON; case bfd_mach_mips_octeonp: return AFL_EXT_OCTEONP; + case bfd_mach_mips_octeon3: + return AFL_EXT_OCTEON3; case bfd_mach_mips_octeon2: return AFL_EXT_OCTEON2; case bfd_mach_mips_xlr: @@ -14730,6 +14739,7 @@ struct mips_mach_extension static const struct mips_mach_extension mips_mach_extensions[] = { /* MIPS64r2 extensions. */ + { bfd_mach_mips_octeon3, bfd_mach_mips_octeon2 }, { bfd_mach_mips_octeon2, bfd_mach_mips_octeonp }, { bfd_mach_mips_octeonp, bfd_mach_mips_octeon }, { bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 }, @@ -15522,6 +15532,9 @@ print_mips_isa_ext (FILE *file, unsigned int isa_ext) case AFL_EXT_XLR: fputs ("RMI XLR", file); break; + case AFL_EXT_OCTEON3: + fputs ("Cavium Networks Octeon3", file); + break; case AFL_EXT_OCTEON2: fputs ("Cavium Networks Octeon2", file); break; |