diff options
author | Richard Earnshaw <richard.earnshaw@arm.com> | 2012-09-12 16:25:51 +0000 |
---|---|---|
committer | Richard Earnshaw <richard.earnshaw@arm.com> | 2012-09-12 16:25:51 +0000 |
commit | f41aef5f6e10edcded9a747dc2bdc9832b940dc7 (patch) | |
tree | 0bf2b26ce0a0a473aa97b09e7a195ce29ab6d155 /bfd/reloc.c | |
parent | a67fa328adaa260bc9293d4ea9058e12e2176cbc (diff) | |
download | gdb-f41aef5f6e10edcded9a747dc2bdc9832b940dc7.zip gdb-f41aef5f6e10edcded9a747dc2bdc9832b940dc7.tar.gz gdb-f41aef5f6e10edcded9a747dc2bdc9832b940dc7.tar.bz2 |
2012-09-11 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
bfd/
* bfd-in2.h: Regenerated.
* elf64-aarch64.c
(elf64_aarch64_howto_table): Add R_AARCH64_GOT_LD_PREL19 reloc to HOWTO.
(elf64_aarch64_reloc_map): Add reloc entry.
(aarch64_resolve_relocation): Likewise.
(bfd_elf_aarch64_put_addend): Likewise.
(aarch64_reloc_got_type): Likewise.
(elf64_aarch64_final_link_relocate): Likewise.
(lf64_aarch64_check_relocs): Likewise.
(elf64_aarch64_check_relocs): New case for R_AARCH64_ADR_PREL_LO21
reloc.
* libbfd.h: Regenerated.
* reloc.c (R_AARCH64_GOT_LD_PREL19): New reloc.
gas/
* config/tc-aarch64.c
(reloc_table): Add reloc to table entry.
(parse_address_main): Add support for #:<reloc_op>:<symbol>.
(parse_operands): Check for unused reloc.
(md_apply_fix): New case for reloc.
(aarch64_force_relocation): Likewise.
gas/testsuite
* gas/aarch64/reloc-insn.d
(BFD_RELOC_AARCH64_GOT_LD_PREL19): Add expected asm for new reloc test.
* gas/aarch64/reloc-insn.s
(BFD_RELOC_AARCH64_GOT_LD_PREL19): Add test for reloc.
include/
* elf/aarch64.h (R_AARCH64_GOT_LD_PREL19): New reloc.
ld/testsuite
* ld-aarch64/aarch64-elf.exp: New reloc tests.
* ld-aarch64/emit-relocs-309-low-bad.d: New file. Expected asm for test
failure (lower bound overflow).
* ld-aarch64/emit-relocs-309-low.d: New file. Expected asm for test
success (lower bound).
* ld-aarch64/emit-relocs-309-up-bad.d: New file. Expected asm for test
failure (upper bound overflow).
* ld-aarch64/emit-relocs-309-up.d: New file. Expected asm for test
success (upper bound).
* ld-aarch64/emit-relocs-309.s: New file. Asm for new reloc tests.
Diffstat (limited to 'bfd/reloc.c')
-rw-r--r-- | bfd/reloc.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/bfd/reloc.c b/bfd/reloc.c index dc01dd9..f8540a7 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -5889,6 +5889,14 @@ ENUMDOC AArch64 ADD immediate instruction, holding bits 0 to 11 of the address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. ENUM + BFD_RELOC_AARCH64_GOT_LD_PREL19 +ENUMDOC + AArch64 Load Literal instruction, holding a 19 bit PC relative word + offset of the global offset table entry for a symbol. The lowest two + bits must be zero and are not stored in the instruction, giving a 21 + bit signed byte offset. This relocation type requires signed overflow + checking. +ENUM BFD_RELOC_AARCH64_ADR_GOT_PAGE ENUMDOC Get to the page base of the global offset table entry for a symbol as |