diff options
author | Sandra Loosemore <sandra@codesourcery.com> | 2015-07-01 16:02:09 -0700 |
---|---|---|
committer | Sandra Loosemore <sandra@codesourcery.com> | 2015-07-01 16:02:09 -0700 |
commit | 8c163c5a87f3e16f34ea9a0565767a23dccd5983 (patch) | |
tree | 9bd457ba7c1ac813aa0d90b7a39bcc842fb9c377 /include | |
parent | 965b1d80832fde9ba17a8b5f11b578a8f9e10581 (diff) | |
download | fsf-binutils-gdb-8c163c5a87f3e16f34ea9a0565767a23dccd5983.zip fsf-binutils-gdb-8c163c5a87f3e16f34ea9a0565767a23dccd5983.tar.gz fsf-binutils-gdb-8c163c5a87f3e16f34ea9a0565767a23dccd5983.tar.bz2 |
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')
-rw-r--r-- | include/elf/ChangeLog | 18 | ||||
-rw-r--r-- | include/elf/nios2.h | 21 |
2 files changed, 38 insertions, 1 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index 0c03d8e..7f80753 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 07f937f..8ffa811 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. */ |