summaryrefslogtreecommitdiff
path: root/include/elf
diff options
context:
space:
mode:
authorSandra Loosemore <sandra@codesourcery.com>2015-07-01 16:02:09 -0700
committerSandra Loosemore <sandra@codesourcery.com>2015-07-01 16:02:09 -0700
commit8c163c5a87f3e16f34ea9a0565767a23dccd5983 (patch)
tree9bd457ba7c1ac813aa0d90b7a39bcc842fb9c377 /include/elf
parent965b1d80832fde9ba17a8b5f11b578a8f9e10581 (diff)
Relocations for Nios II R2
2015-07-01 Sandra Loosemore <sandra@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> bfd/ * bfd-in2.h: Regenerated. * elf32-nios2.c (elf_nios2_howto_table_rel): Rename to... (elf_nios2_r1_howto_table_rel): This. (elf_nios2_r2_howto_table_rel): New. (BFD_IS_R2): New. (lookup_howto): Add ABFD parameter. Adjust to look up in either the R1 or R2 relocation table, as determined by ABFD. (nios2_reloc_map): Add R2 relocations. (nios2_elf32_bfd_reloc_type_lookup): Do lookup using lookup_howto. Pass it the ABFD parameter. (nios2_elf32_bfd_reloc_name_lookup): Use ABFD to decide whether to return an R1 or R2 relocation. (nios2_elf32_info_to_howto): Do lookup using lookup_howto. Pass it the ABFD parameter. (nios2_elf32_do_call26_relocate): Check for alignment on a 4-byte boundary. (nios2_elf32_relocate_section): Adjust call to lookup_howto. * libbfd.h: Regenerated. * reloc.c (BFD_RELOC_NIOS2_R2_S12): New. (BFD_RELOC_NIOS2_R2_I10_1_PCREL): New. (BFD_RELOC_NIOS2_R2_T1I7_1_PCREL): New. (BFD_RELOC_NIOS2_R2_T1I7_2): New. (BFD_RELOC_NIOS2_R2_T2I4): New. (BFD_RELOC_NIOS2_R2_T2I4_1): New. (BFD_RELOC_NIOS2_R2_T2I4_2): New. (BFD_RELOC_NIOS2_R2_X1I7_2): New. (BFD_RELOC_NIOS2_R2_X2L5): New. (BFD_RELOC_NIOS2_R2_F1I5_2): New. (BFD_RELOC_NIOS2_R2_L5I4X1): New. (BFD_RELOC_NIOS2_R2_T1X1I6): New. (BFD_RELOC_NIOS2_R2_T1X1I6_2): New. include/elf/ * nios2.h (R_NIOS2_R2_S12): New. (R_NIOS2_R2_I10_1_PCREL): New. (R_NIOS2_R2_T1I7_1_PCREL): New. (R_NIOS2_R2_T1I7_2): New. (R_NIOS2_R2_T2I4): New. (R_NIOS2_R2_T2I4_1): New. (R_NIOS2_R2_T2I4_2): New. (R_NIOS2_R2_X1I7_2): New. (R_NIOS2_R2_X2L5): New. (R_NIOS2_R2_F1I5_2): New. (R_NIOS2_R2_L5I4X1): New. (R_NIOS2_R2_T1X1I6): New. (R_NIOS2_R2_T1X1I6_2): New. (R_NIOS2_ILLEGAL): Renumber.
Diffstat (limited to 'include/elf')
-rw-r--r--include/elf/ChangeLog18
-rw-r--r--include/elf/nios2.h21
2 files changed, 38 insertions, 1 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index 0c03d8e0d3..7f8075331e 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,6 +1,24 @@
2015-07-01 Sandra Loosemore <sandra@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
+ * nios2.h (R_NIOS2_R2_S12): New.
+ (R_NIOS2_R2_I10_1_PCREL): New.
+ (R_NIOS2_R2_T1I7_1_PCREL): New.
+ (R_NIOS2_R2_T1I7_2): New.
+ (R_NIOS2_R2_T2I4): New.
+ (R_NIOS2_R2_T2I4_1): New.
+ (R_NIOS2_R2_T2I4_2): New.
+ (R_NIOS2_R2_X1I7_2): New.
+ (R_NIOS2_R2_X2L5): New.
+ (R_NIOS2_R2_F1I5_2): New.
+ (R_NIOS2_R2_L5I4X1): New.
+ (R_NIOS2_R2_T1X1I6): New.
+ (R_NIOS2_R2_T1X1I6_2): New.
+ (R_NIOS2_ILLEGAL): Renumber.
+
+2015-07-01 Sandra Loosemore <sandra@codesourcery.com>
+ Cesar Philippidis <cesar@codesourcery.com>
+
* nios2.h (EF_NIOS2_ARCH_R1, EF_NIOS2_ARCH_R2): Define.
2015-05-29 Roland McGrath <mcgrathr@google.com>
diff --git a/include/elf/nios2.h b/include/elf/nios2.h
index 07f937f8df..8ffa811aa0 100644
--- a/include/elf/nios2.h
+++ b/include/elf/nios2.h
@@ -34,6 +34,8 @@
function to work properly. */
START_RELOC_NUMBERS (elf_nios2_reloc_type)
+ /* Relocs used by both R1 and R2, with different howtos to match
+ the respective encodings. */
RELOC_NUMBER (R_NIOS2_NONE, 0)
RELOC_NUMBER (R_NIOS2_S16, 1)
RELOC_NUMBER (R_NIOS2_U16, 2)
@@ -80,7 +82,24 @@ START_RELOC_NUMBERS (elf_nios2_reloc_type)
RELOC_NUMBER (R_NIOS2_GOT_HA, 43)
RELOC_NUMBER (R_NIOS2_CALL_LO, 44)
RELOC_NUMBER (R_NIOS2_CALL_HA, 45)
- RELOC_NUMBER (R_NIOS2_ILLEGAL, 46)
+
+ /* Relocs specific to R2. */
+ RELOC_NUMBER (R_NIOS2_R2_S12, 64)
+ RELOC_NUMBER (R_NIOS2_R2_I10_1_PCREL, 65)
+ RELOC_NUMBER (R_NIOS2_R2_T1I7_1_PCREL, 66)
+ RELOC_NUMBER (R_NIOS2_R2_T1I7_2, 67)
+ RELOC_NUMBER (R_NIOS2_R2_T2I4, 68)
+ RELOC_NUMBER (R_NIOS2_R2_T2I4_1, 69)
+ RELOC_NUMBER (R_NIOS2_R2_T2I4_2, 70)
+ RELOC_NUMBER (R_NIOS2_R2_X1I7_2, 71)
+ RELOC_NUMBER (R_NIOS2_R2_X2L5, 72)
+ RELOC_NUMBER (R_NIOS2_R2_F1I5_2, 73)
+ RELOC_NUMBER (R_NIOS2_R2_L5I4X1, 74)
+ RELOC_NUMBER (R_NIOS2_R2_T1X1I6, 75)
+ RELOC_NUMBER (R_NIOS2_R2_T1X1I6_2, 76)
+
+ /* Last reloc. */
+ RELOC_NUMBER (R_NIOS2_ILLEGAL, 77)
END_RELOC_NUMBERS (R_NIOS2_maxext)
/* Processor-specific section flags. */