X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Felfxx-aarch64.h;h=9ab13bb865bc3e31c35f6d00c83e074a72f0ff55;hb=60df3720d77c8415158f3eaa166e0b7162f9d3b4;hp=612b036c97b1182009c3a23e092a9a6767e42711;hpb=b90efa5b79ac1524ec260f8eb89d1be37e0219a7;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/elfxx-aarch64.h b/bfd/elfxx-aarch64.h index 612b036c97..9ab13bb865 100644 --- a/bfd/elfxx-aarch64.h +++ b/bfd/elfxx-aarch64.h @@ -1,5 +1,5 @@ /* AArch64-specific backend routines. - Copyright (C) 2009-2015 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of BFD, the Binary File Descriptor library. @@ -18,14 +18,23 @@ along with this program; see the file COPYING3. If not, see . */ -#include "bfd.h" -#include "elf-bfd.h" -#include "stdint.h" - /* Take the PAGE component of an address or offset. */ -#define PG(x) ((x) & ~ (bfd_vma) 0xfff) +#define PG(x) ((x) & ~ (bfd_vma) 0xfff) #define PG_OFFSET(x) ((x) & (bfd_vma) 0xfff) +#define AARCH64_ADR_OP 0x10000000 +#define AARCH64_ADRP_OP 0x90000000 +#define AARCH64_ADRP_OP_MASK 0x9F000000 + +extern bfd_signed_vma +_bfd_aarch64_sign_extend (bfd_vma, int); + +extern uint32_t +_bfd_aarch64_decode_adrp_imm (uint32_t); + +extern uint32_t +_bfd_aarch64_reencode_adr_imm (uint32_t, uint32_t); + extern bfd_reloc_status_type _bfd_aarch64_elf_put_addend (bfd *, bfd_byte *, bfd_reloc_code_real_type, reloc_howto_type *, bfd_signed_vma); @@ -34,11 +43,6 @@ extern bfd_vma _bfd_aarch64_elf_resolve_relocation (bfd_reloc_code_real_type, bfd_vma, bfd_vma, bfd_vma, bfd_boolean); -extern bfd_boolean -_bfd_aarch64_elf_add_symbol_hook (bfd *, struct bfd_link_info *, - Elf_Internal_Sym *, const char **, - flagword *, asection **, bfd_vma *); - extern bfd_boolean _bfd_aarch64_elf_grok_prstatus (bfd *, Elf_Internal_Note *); @@ -48,7 +52,29 @@ _bfd_aarch64_elf_grok_psinfo (bfd *, Elf_Internal_Note *); extern char * _bfd_aarch64_elf_write_core_note (bfd *, char *, int *, int, ...); -#define elf_backend_add_symbol_hook _bfd_aarch64_elf_add_symbol_hook #define elf_backend_grok_prstatus _bfd_aarch64_elf_grok_prstatus -#define elf_backend_grok_psinfo _bfd_aarch64_elf_grok_psinfo -#define elf_backend_write_core_note _bfd_aarch64_elf_write_core_note +#define elf_backend_grok_psinfo _bfd_aarch64_elf_grok_psinfo +#define elf_backend_write_core_note _bfd_aarch64_elf_write_core_note + +extern bfd * +_bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *, + uint32_t *); + +extern enum elf_property_kind +_bfd_aarch64_elf_parse_gnu_properties (bfd *, unsigned int, + bfd_byte *, unsigned int); + +extern bfd_boolean +_bfd_aarch64_elf_merge_gnu_properties (struct bfd_link_info *, bfd *, + elf_property *, elf_property *, + uint32_t); + +extern void +_bfd_aarch64_elf_link_fixup_gnu_properties (struct bfd_link_info *, + elf_property_list **); + +#define elf_backend_parse_gnu_properties \ + _bfd_aarch64_elf_parse_gnu_properties + +#define elf_backend_fixup_gnu_properties \ + _bfd_aarch64_elf_link_fixup_gnu_properties