diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 11 | ||||
-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 | 8 |
5 files changed, 23 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6b1e88a4875..6b9491fd212 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,14 @@ +2011-12-08 Andrew Pinski <apinski@cavium.com> + Adam Nemet <anemet@caviumnetworks.com> + + * archures.c (bfd_mach_mips_octeon2): New macro + * bfd-in2.h: Regenerate. + * cpu-mips.c (I_mipsocteon2): New enum value. + (arch_info_struct): Add bfd_mach_mips_octeon2. + * elfxx-mips.c (_bfd_elf_mips_mach): Support E_MIPS_MACH_OCTEON2. + (mips_set_isa_flags): Add bfd_mach_mips_octeon2. + (mips_mach_extensions): Add bfd_mach_mips_octeon2. + 2011-12-07 Alan Modra <amodra@gmail.com> PR ld/12772 diff --git a/bfd/archures.c b/bfd/archures.c index 698155fbc60..f6095349004 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -177,6 +177,7 @@ DESCRIPTION .#define bfd_mach_mips_sb1 12310201 {* octal 'SB', 01 *} .#define bfd_mach_mips_octeon 6501 .#define bfd_mach_mips_octeonp 6601 +.#define bfd_mach_mips_octeon2 6502 .#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 14e0d1a1f6b..2bb0ec7db55 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1883,6 +1883,7 @@ enum bfd_architecture #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */ #define bfd_mach_mips_octeon 6501 #define bfd_mach_mips_octeonp 6601 +#define bfd_mach_mips_octeon2 6502 #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 417bc7cf4c5..ed86f11fb8d 100644 --- a/bfd/cpu-mips.c +++ b/bfd/cpu-mips.c @@ -94,6 +94,7 @@ enum I_loongson_3a, I_mipsocteon, I_mipsocteonp, + I_mipsocteon2, I_xlr, I_micromips }; @@ -136,6 +137,7 @@ static const bfd_arch_info_type arch_info_struct[] = N (64, 64, bfd_mach_mips_loongson_3a, "mips:loongson_3a", FALSE, NN(I_loongson_3a)), 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_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 7a467c71bc8..33b2e37c94d 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -6182,6 +6182,9 @@ _bfd_elf_mips_mach (flagword flags) case E_MIPS_MACH_LS3A: return bfd_mach_mips_loongson_3a; + case E_MIPS_MACH_OCTEON2: + return bfd_mach_mips_octeon2; + case E_MIPS_MACH_OCTEON: return bfd_mach_mips_octeon; @@ -10893,6 +10896,10 @@ mips_set_isa_flags (bfd *abfd) val = E_MIPS_ARCH_64 | E_MIPS_MACH_XLR; break; + case bfd_mach_mips_octeon2: + val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2; + break; + case bfd_mach_mipsisa32: val = E_MIPS_ARCH_32; break; @@ -13492,6 +13499,7 @@ struct mips_mach_extension { static const struct mips_mach_extension mips_mach_extensions[] = { /* MIPS64r2 extensions. */ + { bfd_mach_mips_octeon2, bfd_mach_mips_octeonp }, { bfd_mach_mips_octeonp, bfd_mach_mips_octeon }, { bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 }, |