aboutsummaryrefslogtreecommitdiff
path: root/bfd/libbfd.h
diff options
context:
space:
mode:
authorWalter Lee <walt@tilera.com>2012-08-28 02:43:22 +0000
committerWalter Lee <walt@tilera.com>2012-08-28 02:43:22 +0000
commite5b95258d9dd1ecc4a53baf56308ce78f19f4904 (patch)
tree3f98a860be8a85ea99ae0519037d37c5801c123f /bfd/libbfd.h
parentaedbcd6364b2c09c7d6a193d46b064b42013b857 (diff)
downloadfsf-binutils-gdb-e5b95258d9dd1ecc4a53baf56308ce78f19f4904.zip
fsf-binutils-gdb-e5b95258d9dd1ecc4a53baf56308ce78f19f4904.tar.gz
fsf-binutils-gdb-e5b95258d9dd1ecc4a53baf56308ce78f19f4904.tar.bz2
Add support for constructing pc-relative addresses to the plt, by
adding the necessary assembly operators and relocations. bfd: * reloc.c (Add BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL, BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL): new relocations. * elfxx-tilegx.c (tilegx_elf_howto_table): Handle new relocations. (tilegx_reloc_map): Ditto. (reloc_to_create_func): Ditto. (tilegx_elf_check_relocs): Ditto. (tilegx_elf_gc_sweep_hook): Ditto. (tilegx_elf_relocate_section): Ditto. * libbfd.h: Regenerate. * bfd-in2.h: Regenerate. gas: * tc-tilegx.c (O_hw0_plt): Define operator. (O_hw1_plt): Ditto. (O_hw1_last_plt): Ditto. (O_hw2_last_plt): Ditto. (md_begin): Handle new operators. (emit_tilegx_instruction): Ditto. (md_apply_fix): Ditto. * doc/c-tilegx.texi: Document new operators. include/elf: * tilegx.h (R_TILEGX_IMM16_X0_HW0_PLT_PCREL): New relocation. (R_TILEGX_IMM16_X1_HW0_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X0_HW1_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X1_HW1_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X0_HW2_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X1_HW2_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X0_HW3_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X1_HW3_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL): Ditto. (R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL ): Ditto. (R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL): Ditto.
Diffstat (limited to 'bfd/libbfd.h')
-rw-r--r--bfd/libbfd.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 88ff9c6..2e9d706 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -2613,10 +2613,18 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT",
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT",
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE",
@@ -2631,6 +2639,12 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL",
+ "BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL",
"BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE",
"BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE",
"BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE",