Home | History | Annotate | Download | only in gold

Lines Matching refs:big_endian

58 template<int size, bool big_endian>
61 template<int size, bool big_endian>
64 template<int size, bool big_endian>
67 template<int size, bool big_endian>
74 template<bool big_endian>
78 typedef typename elfcpp::Swap<32, big_endian>::Valtype Insntype;
417 template<bool big_endian>
418 const int AArch64_insn_utilities<big_endian>::BYTES_PER_INSN = 4;
423 template<bool big_endian>
424 const unsigned int AArch64_insn_utilities<big_endian>::AARCH64_ZR = 0x1f;
429 template<int size, bool big_endian>
430 class Output_data_got_aarch64 : public Output_data_got<size, big_endian>
435 : Output_data_got<size, big_endian>(),
452 Sized_relobj_file<size, big_endian>* relobj,
469 Output_data_got<size, big_endian>::do_write(of);
487 align_address(Target_aarch64<size, big_endian>::TCB_SIZE,
497 Sized_relobj_file<size, big_endian>* object = reloc.relobj();
550 typedef typename elfcpp::Swap<size, big_endian>::Valtype Valtype;
564 elfcpp::Swap<size, big_endian>::writeval(wv, x);
587 Sized_relobj_file<size, big_endian>* relobj, unsigned int index)
618 Sized_relobj_file<size, big_endian>*
651 Sized_relobj_file<size, big_endian>* relobj;
662 template<int size, bool big_endian>
666 template<int size, bool big_endian>
670 template<int size, bool big_endian>
707 template<bool big_endian>
710 const typename AArch64_insn_utilities<big_endian>::Insntype* insns;
718 template<bool big_endian>
722 typedef typename AArch64_insn_utilities<big_endian>::Insntype Insntype;
725 static const Stub_template<big_endian>*
728 static Stub_template_repertoire<big_endian> singleton;
743 const Stub_template<big_endian>* stub_templates_[ST_NUMBER];
749 template<bool big_endian>
750 Stub_template_repertoire<big_endian>::Stub_template_repertoire()
795 const static Stub_template<big_endian> template_##T = { \
812 template<int size, bool big_endian>
817 typedef typename AArch64_insn_utilities<big_endian>::Insntype Insntype;
840 const Stub_template<big_endian>*
843 return Stub_template_repertoire<big_endian>::
898 AArch64_insn_utilities<big_endian>::BYTES_PER_INSN;
932 template<int size, bool big_endian>
933 class Erratum_stub : public Stub_base<size, big_endian>
936 typedef AArch64_relobj<size, big_endian> The_aarch64_relobj;
938 typedef AArch64_insn_utilities<big_endian> Insn_utilities;
939 typedef typename AArch64_insn_utilities<big_endian>::Insntype Insntype;
947 : Stub_base<size, big_endian>(type), relobj_(relobj),
1032 operator<(const Erratum_stub<size, big_endian>& k) const
1079 template<int size, bool big_endian>
1080 class E843419_stub : public Erratum_stub<size, big_endian>
1083 typedef typename AArch64_insn_utilities<big_endian>::Insntype Insntype;
1085 E843419_stub(AArch64_relobj<size, big_endian>* relobj,
1088 : Erratum_stub<size, big_endian>(relobj, ST_E_843419, shndx, sh_offset),
1103 template<int size, bool big_endian>
1104 const int Erratum_stub<size, big_endian>::STUB_ADDR_ALIGN = 4;
1107 template<int size, bool big_endian>
1111 operator()(const Erratum_stub<size, big_endian>* s1,
1112 const Erratum_stub<size, big_endian>* s2) const
1118 template<int size, bool big_endian>
1120 Erratum_stub<size, big_endian>::do_write(unsigned char* view, section_size_type)
1122 typedef typename elfcpp::Swap<32, big_endian>::Valtype Insntype;
1129 elfcpp::Swap<32, big_endian>::writeval(ip, this->erratum_insn());
1131 elfcpp::Swap<32, big_endian>::writeval(ip + i, insns[i]);
1137 template<int size, bool big_endian>
1138 class Reloc_stub : public Stub_base<size, big_endian>
1141 typedef Reloc_stub<size, big_endian> This;
1166 typedef AArch64_relocate_functions<size, big_endian> Reloc;
1178 : Stub_base<size, big_endian>(type)
1301 template<int size, bool big_endian>
1302 const int Reloc_stub<size, big_endian>::STUB_ADDR_ALIGN = 4;
1306 template<int size, bool big_endian>
1308 Reloc_stub<size, big_endian>::
1311 typedef typename elfcpp::Swap<32, big_endian>::Valtype Insntype;
1316 elfcpp::Swap<32, big_endian>::writeval(ip + i, insns[i]);
1323 template<int size, bool big_endian>
1325 Reloc_stub<size, big_endian>::stub_type_for_reloc(
1357 template<int size, bool big_endian>
1361 typedef Target_aarch64<size, big_endian> The_target_aarch64;
1363 typedef AArch64_relobj<size, big_endian> The_aarch64_relobj;
1364 typedef AArch64_input_section<size, big_endian> The_aarch64_input_section;
1365 typedef Reloc_stub<size, big_endian> The_reloc_stub;
1367 typedef Erratum_stub<size, big_endian> The_erratum_stub;
1368 typedef Erratum_stub_less<size, big_endian> The_erratum_stub_less;
1371 typedef Stub_table<size, big_endian> The_stub_table;
1376 typedef Relocate_info<size, big_endian> The_relocate_info;
1527 template<int size, bool big_endian>
1529 Stub_table<size, big_endian>::add_erratum_stub(The_erratum_stub* stub)
1543 template<int size, bool big_endian>
1544 Erratum_stub<size, big_endian>*
1545 Stub_table<size, big_endian>::find_erratum_stub(
1565 template<int size, bool big_endian>
1566 std::pair<typename Stub_table<size, big_endian>::Erratum_stub_set_iter,
1567 typename Stub_table<size, big_endian>::Erratum_stub_set_iter>
1568 Stub_table<size, big_endian>::find_erratum_stubs_for_input_section(
1589 template<int size, bool big_endian>
1591 Stub_table<size, big_endian>::add_reloc_stub(
1608 template<int size, bool big_endian>
1610 Stub_table<size, big_endian>::
1615 const int BPI = AArch64_insn_utilities<big_endian>::BYTES_PER_INSN;
1630 elfcpp::Swap<32, big_endian>::writeval(
1637 AArch64_relocate_functions<size, big_endian>::construct_b(
1652 template<int size, bool big_endian>
1654 Stub_table<size, big_endian>::
1675 template<int size, bool big_endian>
1677 Stub_table<size, big_endian>::
1699 template<int size, bool big_endian>
1701 Stub_table<size, big_endian>::do_write(Output_file* of)
1736 template<int size, bool big_endian>
1737 class AArch64_relobj : public Sized_relobj_file<size, big_endian>
1740 typedef AArch64_relobj<size, big_endian> This;
1741 typedef Target_aarch64<size, big_endian> The_target_aarch64;
1742 typedef AArch64_input_section<size, big_endian> The_aarch64_input_section;
1744 typedef Stub_table<size, big_endian> The_stub_table;
1745 typedef Erratum_stub<size, big_endian> The_erratum_stub;
1752 const typename elfcpp::Ehdr<size, big_endian>& ehdr)
1753 : Sized_relobj_file<size, big_endian>(name, input_file, offset, ehdr),
1779 const elfcpp::Shdr<size, big_endian>&,
1790 text_section_is_scannable(const elfcpp::Shdr<size, big_endian>&, unsigned int,
1832 Sized_relobj_file<size, big_endian>::do_setup();
1842 typename Sized_relobj_file<size, big_endian>::Views* pviews);
1854 typename Sized_relobj_file<size, big_endian>::Views* pviews);
1861 typename Sized_relobj_file<size, big_endian>::View_size&);
1865 section_needs_reloc_stub_scanning(const elfcpp::Shdr<size, big_endian>&,
1878 template<int size, bool big_endian>
1880 AArch64_relobj<size, big_endian>::do_count_local_symbols(
1883 Sized_relobj_file<size, big_endian>::do_count_local_symbols(pool, dynpool);
1897 elfcpp::Shdr<size, big_endian>
1916 elfcpp::Shdr<size, big_endian>
1932 typename Sized_relobj_file<size, big_endian>::Local_values*
1936 elfcpp::Sym<size, big_endian> sym(psyms);
1969 template<int size, bool big_endian>
1971 AArch64_relobj<size, big_endian>::fix_errata_and_relocate_erratum_stubs(
1972 typename Sized_relobj_file<size, big_endian>::Views* pviews)
1974 typedef typename elfcpp::Swap<32,big_endian>::Valtype Insntype;
1985 typename Sized_relobj_file<size, big_endian>::View_size&
2024 AArch64_relocate_functions<size, big_endian>::construct_b(
2052 template<int size, bool big_endian>
2054 AArch64_relobj<size, big_endian>::try_fix_erratum_843419_optimized(
2056 typename Sized_relobj_file<size, big_endian>::View_size& pview)
2061 typedef AArch64_insn_utilities<big_endian> Insn_utilities;
2062 typedef typename elfcpp::Swap<32,big_endian>::Valtype Insntype;
2063 E843419_stub<size, big_endian>* e843419_stub =
2064 reinterpret_cast<E843419_stub<size, big_endian>*>(stub);
2117 elfcpp::Swap<32, big_endian>::writeval(adrp_view, adr_insn);
2126 template<int size, bool big_endian>
2128 AArch64_relobj<size, big_endian>::do_relocate_sections(
2131 typename Sized_relobj_file<size, big_endian>::Views* pviews)
2147 Relocate_info<size, big_endian> relinfo;
2173 typename Sized_relobj_file<size, big_endian>::View_size&
2194 template<int size, bool big_endian>
2196 AArch64_relobj<size, big_endian>::text_section_is_scannable(
2197 const elfcpp::Shdr<size, big_endian>& text_shdr,
2227 template<int size, bool big_endian>
2229 AArch64_relobj<size, big_endian>::section_needs_reloc_stub_scanning(
2230 const elfcpp::Shdr<size, big_endian>& shdr,
2264 const elfcpp::Shdr<size, big_endian> text_shdr(pshdrs +
2273 template<int size, bool big_endian>
2275 AArch64_relobj<size, big_endian>::scan_errata(
2276 unsigned int shndx, const elfcpp::Shdr<size, big_endian>& shdr,
2344 template<int size, bool big_endian>
2346 AArch64_relobj<size, big_endian>::scan_sections_for_stubs(
2365 Relocate_info<size, big_endian> relinfo;
2374 const elfcpp::Shdr<size, big_endian> shdr(p);
2429 template<int size, bool big_endian>
2433 typedef Stub_table<size, big_endian> The_stub_table;
2532 template<int size, bool big_endian>
2534 AArch64_input_section<size, big_endian>::set_final_data_size()
2550 template<int size, bool big_endian>
2552 AArch64_input_section<size, big_endian>::do_reset_address_and_file_offset()
2575 template<int size, bool big_endian>
2577 AArch64_input_section<size, big_endian>::init()
2613 template<int size, bool big_endian>
2615 AArch64_input_section<size, big_endian>::do_write(Output_file* of)
2631 template<int size, bool big_endian>
2635 typedef Target_aarch64<size, big_endian> The_target_aarch64;
2636 typedef AArch64_relobj<size, big_endian> The_aarch64_relobj;
2637 typedef Stub_table<size, big_endian> The_stub_table;
2638 typedef AArch64_input_section<size, big_endian> The_aarch64_input_section;
2650 group_sections(section_size_type, bool, Target_aarch64<size, big_endian>*,
2671 template<int size, bool big_endian> void
2672 AArch64_output_section<size, big_endian>::create_stub_group(
2728 template<int size, bool big_endian>
2729 void AArch64_output_section<size, big_endian>::group_sections(
2732 Target_aarch64<size, big_endian>* target,
2863 template<int size, bool big_endian>
2864 class Target_aarch64 : public Sized_target<size, big_endian>
2867 typedef Target_aarch64<size, big_endian> This;
2868 typedef Output_data_reloc<elfcpp::SHT_RELA, true, size, big_endian>
2870 typedef Output_data_reloc<elfcpp::SHT_RELR, true, size, big_endian>
2872 typedef Relocate_info<size, big_endian> The_relocate_info;
2874 typedef AArch64_relobj<size, big_endian> The_aarch64_relobj;
2875 typedef Reloc_stub<size, big_endian> The_reloc_stub;
2876 typedef Erratum_stub<size, big_endian> The_erratum_stub;
2877 typedef typename Reloc_stub<size, big_endian>::Key The_reloc_stub_key;
2878 typedef Stub_table<size, big_endian> The_stub_table;
2881 typedef AArch64_input_section<size, big_endian> The_aarch64_input_section;
2882 typedef AArch64_output_section<size, big_endian> The_aarch64_output_section;
2884 AArch64_input_section<size, big_endian>*,
2886 typedef AArch64_insn_utilities<big_endian> Insn_utilities;
2890 : Sized_target<size, big_endian>(info),
2904 Sized_relobj_file<size, big_endian>* object,
2918 Sized_relobj_file<size, big_endian>* object,
2939 relocate_section(const Relocate_info<size, big_endian>*,
2954 Sized_relobj_file<size, big_endian>* object,
2969 Sized_relobj_file<size, big_endian>* object,
2983 const Relocate_info<size, big_endian>*,
3057 scan_section_for_stubs(const Relocate_info<size, big_endian>*, unsigned int,
3078 relocate_reloc_stub(The_reloc_stub*, const Relocate_info<size, big_endian>*,
3088 && parameters->target().is_big_endian() == big_endian);
3089 return static_cast<This*>(parameters->sized_target<size, big_endian>());
3096 AArch64_relobj<size, big_endian>*,
3106 AArch64_relobj<size, big_endian>*,
3123 add_tlsdesc_info(Sized_relobj_file<size, big_endian>* object,
3130 virtual Output_data_plt_aarch64<size, big_endian>*
3132 Output_data_got_aarch64<size, big_endian>* got,
3136 return new Output_data_plt_aarch64_standard<size, big_endian>(
3144 const elfcpp::Ehdr<size, big_endian>&);
3146 Output_data_plt_aarch64<size, big_endian>*
3148 Output_data_got_aarch64<size, big_endian>* got,
3201 Sized_relobj_file<size, big_endian>* object,
3204 const elfcpp::Rela<size, big_endian>& reloc, unsigned int r_type,
3205 const elfcpp::Sym<size, big_endian>& lsym,
3210 Sized_relobj_file<size, big_endian>* object,
3213 const elfcpp::Rela<size, big_endian>& reloc, unsigned int r_type,
3218 Target_aarch64<size, big_endian>* ,
3219 Sized_relobj_file<size, big_endian>* ,
3222 const elfcpp::Rela<size, big_endian>& ,
3224 const elfcpp::Sym<size, big_endian>&);
3228 Target_aarch64<size, big_endian>* ,
3229 Sized_relobj_file<size, big_endian>* ,
3232 const elfcpp::Rela<size, big_endian>& ,
3238 unsupported_reloc_local(Sized_relobj_file<size, big_endian>*,
3242 unsupported_reloc_global(Sized_relobj_file<size, big_endian>*,
3252 reloc_needs_plt_for_ifunc(Sized_relobj_file<size, big_endian>*,
3273 relocate(const Relocate_info<size, big_endian>*, unsigned int,
3280 inline typename AArch64_relocate_functions<size, big_endian>::Status
3281 relocate_tls(const Relocate_info<size, big_endian>*,
3282 Target_aarch64<size, big_endian>*,
3284 const elfcpp::Rela<size, big_endian>&,
3290 inline typename AArch64_relocate_functions<size, big_endian>::Status
3292 const Relocate_info<size, big_endian>*,
3293 Target_aarch64<size, big_endian>*,
3294 const elfcpp::Rela<size, big_endian>&,
3299 inline typename AArch64_relocate_functions<size, big_endian>::Status
3301 const Relocate_info<size, big_endian>*,
3302 Target_aarch64<size, big_endian>*,
3303 const elfcpp::Rela<size, big_endian>&,
3308 inline typename AArch64_relocate_functions<size, big_endian>::Status
3310 const Relocate_info<size, big_endian>*,
3311 Target_aarch64<size, big_endian>*,
3312 const elfcpp::Rela<size, big_endian>&,
3317 inline typename AArch64_relocate_functions<size, big_endian>::Status
3319 const Relocate_info<size, big_endian>*,
3320 Target_aarch64<size, big_endian>*,
3321 const elfcpp::Rela<size, big_endian>&,
3326 inline typename AArch64_relocate_functions<size, big_endian>::Status
3328 const Relocate_info<size, big_endian>*,
3329 Target_aarch64<size, big_endian>*,
3330 const elfcpp::Rela<size, big_endian>&,
3347 Output_data_got_aarch64<size, big_endian>*
3359 Output_data_got<size, big_endian>*
3377 Sized_relobj_file<size, big_endian>* relobj,
3391 Sized_relobj_file<size, big_endian>* object);
3394 Output_data_plt_aarch64<size, big_endian>*
3404 AArch64_relobj<size, big_endian>* relobj,
3414 typename elfcpp::Swap<32,big_endian>::Valtype insn1,
3415 typename elfcpp::Swap<32,big_endian>::Valtype insn2,
3416 typename elfcpp::Swap<32,big_endian>::Valtype insn3);
3421 typename elfcpp::Swap<32,big_endian>::Valtype,
3422 typename elfcpp::Swap<32,big_endian>::Valtype);
3443 Sized_relobj_file<size, big_endian>* object,
3445 Symbol* sym, const elfcpp::Rela<size, big_endian>& reloc)
3477 Tlsdesc_info(Sized_relobj_file<size, big_endian>* a_object,
3483 Sized_relobj_file<size, big_endian>* object;
3489 Output_data_got_aarch64<size, big_endian>* got_;
3491 Output_data_plt_aarch64<size, big_endian>* plt_;
3497 Output_data_got<size, big_endian>* got_tlsdesc_;
3507 Copy_relocs<elfcpp::SHT_RELA, size, big_endian> copy_relocs_;
3638 template<int size, bool big_endian>
3639 Output_data_got_aarch64<size, big_endian>*
3640 Target_aarch64<size, big_endian>::got_section(Symbol_table* symtab,
3666 this->got_ = new Output_data_got_aarch64<size, big_endian>(symtab,
3713 this->got_tlsdesc_ = new Output_data_got<size, big_endian>();
3734 template<int size, bool big_endian>
3735 typename Target_aarch64<size, big_endian>::Reloc_section*
3736 Target_aarch64<size, big_endian>::rela_dyn_section(Layout* layout)
3755 template<int size, bool big_endian>
3756 typename Target_aarch64<size, big_endian>::Reloc_section*
3757 Target_aarch64<size, big_endian>::rela_irelative_section(Layout* layout)
3775 template<int size, bool big_endian>
3776 typename Target_aarch64<size, big_endian>::Relr_section*
3777 Target_aarch64<size, big_endian>::relr_dyn_section(Layout* layout)
3792 // to use a target-specific sub-class of Sized_relobj_file<size, big_endian> to
3796 template<int size, bool big_endian>
3798 Target_aarch64<size, big_endian>::do_make_elf_object(
3801 off_t offset, const elfcpp::Ehdr<size, big_endian>& ehdr)
3807 return Sized_target<size, big_endian>::do_make_elf_object(
3811 AArch64_relobj<size, big_endian>* obj =
3812 new AArch64_relobj<size, big_endian>(name, input_file, offset, ehdr);
3819 Sized_dynobj<size, big_endian>* obj =
3820 new Sized_dynobj<size, big_endian>(name, input_file, offset, ehdr);
3835 template<int size, bool big_endian>
3837 Target_aarch64<size, big_endian>::scan_reloc_for_stub(
3838 const Relocate_info<size, big_endian>* relinfo,
3846 const AArch64_relobj<size, big_endian>* aarch64_relobj =
3847 static_cast<AArch64_relobj<size, big_endian>*>(relinfo->object);
3906 // BIG_ENDIAN is the endianness of the data. SH_TYPE is the section type:
3919 template<int size, bool big_endian>
3922 Target_aarch64<size, big_endian>::scan_reloc_section_for_stubs(
3923 const Relocate_info<size, big_endian>* relinfo,
3932 typedef typename Reloc_types<sh_type,size,big_endian>::Reloc Reltype;
3935 Reloc_types<sh_type,size,big_endian>::reloc_size;
3936 AArch64_relobj<size, big_endian>* object =
3937 static_cast<AArch64_relobj<size, big_endian>*>(relinfo->object);
3987 typedef Sized_relobj_file<size, big_endian> ObjType;
4098 template<int size, bool big_endian>
4100 Target_aarch64<size, big_endian>::scan_section_for_stubs(
4101 const Relocate_info<size, big_endian>* relinfo,
4126 template<int size, bool big_endian>
4127 void Target_aarch64<size, big_endian>::
4135 typedef AArch64_relocate_functions<size, big_endian> The_reloc_functions;
4137 typedef typename elfcpp::Swap<32,big_endian>::Valtype Insntype;
4145 Insntype insn = elfcpp::Swap<32,big_endian>::readval(ip + i);
4176 elfcpp::Swap<64,big_endian>::writeval(view + 8, dest);
4184 elfcpp::Swap<64,big_endian>::writeval(view + 16, offset);
4199 template<int size, bool big_endian>
4203 typedef Output_data_reloc<elfcpp::SHT_RELA, true, size, big_endian>
4209 Output_data_got_aarch64<size, big_endian>* got,
4228 Sized_relobj_file<size, big_endian>* relobj,
4398 Output_data_got_aarch64<size, big_endian>* got_;
4421 template<int size, bool big_endian>
4423 Output_data_plt_aarch64<size, big_endian>::init(Layout* layout)
4431 template<int size, bool big_endian>
4433 Output_data_plt_aarch64<size, big_endian>::do_adjust_output_section(
4441 template<int size, bool big_endian>
4443 Output_data_plt_aarch64<size, big_endian>::add_entry(Symbol_table* symtab,
4489 template<int size, bool big_endian>
4491 Output_data_plt_aarch64<size, big_endian>::add_local_ifunc_entry(
4494 Sized_relobj_file<size, big_endian>* relobj,
4517 template<int size, bool big_endian>
4519 Output_data_plt_aarch64<size, big_endian>::add_relocation(
4540 template<int size, bool big_endian>
4541 typename Output_data_plt_aarch64<size, big_endian>::Reloc_section*
4542 Output_data_plt_aarch64<size, big_endian>::rela_tlsdesc(Layout* layout)
4559 template<int size, bool big_endian>
4560 typename Output_data_plt_aarch64<size, big_endian>::Reloc_section*
4561 Output_data_plt_aarch64<size, big_endian>::rela_irelative(Symbol_table* symtab,
4600 template<int size, bool big_endian>
4602 Output_data_plt_aarch64<size, big_endian>::address_for_global(
4616 template<int size, bool big_endian>
4618 Output_data_plt_aarch64<size, big_endian>::address_for_local(
4630 template<int size, bool big_endian>
4632 Output_data_plt_aarch64<size, big_endian>::set_final_data_size()
4643 template<int size, bool big_endian>
4645 public Output_data_plt_aarch64<size, big_endian>
4651 Output_data_got_aarch64<size, big_endian>* got,
4654 : Output_data_plt_aarch64<size, big_endian>(layout,
4825 template<int size, bool big_endian>
4827 Output_data_plt_aarch64_standard<size, big_endian>::do_fill_first_plt_entry(
4848 AArch64_relocate_functions<size, big_endian>::adrp(pov + 4,
4852 elfcpp::Swap<32, big_endian>::writeval(
4858 elfcpp::Swap<32, big_endian>::writeval(
4868 template<int size, bool big_endian>
4870 Output_data_plt_aarch64_standard<size, big_endian>::do_fill_plt_entry(
4883 AArch64_relocate_functions<size, big_endian>::adrp(
4889 elfcpp::Swap<32, big_endian>::writeval(
4895 elfcpp::Swap<32, big_endian>::writeval(
4963 template<int size, bool big_endian>
4965 Output_data_plt_aarch64_standard<size, big_endian>::do_fill_tlsdesc_entry(
4981 AArch64_relocate_functions<size, big_endian>::adrp(
4987 AArch64_relocate_functions<size, big_endian>::adrp(
4993 elfcpp::Swap<32, big_endian>::writeval(
4999 elfcpp::Swap<32, big_endian>::writeval(
5008 template<int size, bool big_endian>
5010 Output_data_plt_aarch64<size, big_endian>::do_write(Output_file* of)
5059 elfcpp::Swap<size, big_endian>::writeval(got_pov, plt_address);
5112 template<int size, bool big_endian>
5123 typedef AArch64_relocate_functions<size, big_endian> This;
5125 typedef Relocate_info<size, big_endian> The_relocate_info;
5126 typedef AArch64_relobj<size, big_endian> The_aarch64_relobj;
5127 typedef Reloc_stub<size, big_endian> The_reloc_stub;
5128 typedef Stub_table<size, big_endian> The_stub_table;
5129 typedef elfcpp::Rela<size, big_endian> The_rela;
5130 typedef typename elfcpp::Swap<size, big_endian>::Valtype AArch64_valtype;
5152 typedef typename elfcpp::Swap<valsize, big_endian>::Valtype Valtype;
5154 Valtype val = elfcpp::Swap<valsize, big_endian>::readval(wv);
5158 elfcpp::Swap<valsize, big_endian>::writeval(wv,
5176 typedef typename elfcpp::Swap<valsize, big_endian>::Valtype Valtype;
5178 Valtype val = elfcpp::Swap<valsize, big_endian>::readval(wv);
5180 elfcpp::Swap<valsize, big_endian>::writeval(wv,
5210 typedef typename elfcpp::Swap<32, big_endian>::Valtype Valtype;
5212 Valtype val = elfcpp::Swap<32, big_endian>::readval(wv);
5227 elfcpp::Swap<32, big_endian>::writeval(wv,
5274 const Sized_relobj_file<size, big_endian>* object,
5279 typedef typename elfcpp::Swap_unaligned<valsize, big_endian>::Valtype
5283 elfcpp::Swap_unaligned<valsize, big_endian>::writeval(view,
5295 const Sized_relobj_file<size, big_endian>* object,
5301 typedef typename elfcpp::Swap_unaligned<valsize, big_endian>::Valtype
5304 elfcpp::Swap_unaligned<valsize, big_endian>::writeval(view,
5317 const Sized_relobj_file<size, big_endian>* object,
5322 typedef typename elfcpp::Swap<valsize, big_endian>::Valtype Valtype;
5325 elfcpp::Swap<valsize, big_endian>::writeval(wv,static_cast<Valtype>(x));
5337 const Sized_relobj_file<size, big_endian>* object,
5370 const Sized_relobj_file<size, big_endian>* object,
5386 const Sized_relobj_file<size, big_endian>* object,
5426 const Sized_relobj_file<size, big_endian>* object,
5485 const Sized_relobj_file<size, big_endian>*,
5496 template<int size, bool big_endian>
5498 AArch64_relocate_functions<size, big_endian>::
5506 const Sized_relobj_file<size, big_endian>* object,
5530 typename elfcpp::Swap<size, big_endian>::Valtype branch_offset =
5555 template<int size, bool big_endian>
5557 Target_aarch64<size, big_endian>::group_sections(
5570 AArch64_output_section<size, big_endian>* output_section =
5571 static_cast<AArch64_output_section<size, big_endian>*>(*p);
5581 template<int size, bool big_endian>
5582 AArch64_input_section<size, big_endian>*
5583 Target_aarch64<size, big_endian>::find_aarch64_input_section(
5595 template<int size, bool big_endian>
5596 AArch64_input_section<size, big_endian>*
5597 Target_aarch64<size, big_endian>::new_aarch64_input_section(
5602 AArch64_input_section<size, big_endian>* input_section =
5603 new AArch64_input_section<size, big_endian>(relobj, shndx);
5621 template<int size, bool big_endian>
5623 Target_aarch64<size, big_endian>::do_relax(
5731 template<int size, bool big_endian>
5732 Stub_table<size, big_endian>*
5733 Target_aarch64<size, big_endian>::new_stub_table(
5734 AArch64_input_section<size, big_endian>* owner)
5736 Stub_table<size, big_endian>* stub_table =
5737 new Stub_table<size, big_endian>(owner);
5749 template<int size, bool big_endian>
5751 Target_aarch64<size, big_endian>::do_reloc_addend(
5766 template<int size, bool big_endian>
5768 Target_aarch64<size, big_endian>::plt_entry_count() const
5777 template<int size, bool big_endian>
5779 Target_aarch64<size, big_endian>::first_plt_entry_offset() const
5786 template<int size, bool big_endian>
5788 Target_aarch64<size, big_endian>::plt_entry_size() const
5795 template<int size, bool big_endian>
5797 Target_aarch64<size, big_endian>::define_tls_base_symbol(
5821 template<int size, bool big_endian>
5823 Target_aarch64<size, big_endian>::reserve_tlsdesc_entries(
5832 Output_data_got_aarch64<size, big_endian>* got =
5843 template<int size, bool big_endian>
5845 Target_aarch64<size, big_endian>::got_mod_index_entry(
5847 Sized_relobj_file<size, big_endian>* object)
5853 Output_data_got_aarch64<size, big_endian>* got =
5868 template<int size, bool big_endian>
5870 Target_aarch64<size, big_endian>::optimize_tls_reloc(bool is_final,
5943 template<int size, bool big_endian>
5945 Target_aarch64<size, big_endian>::Scan::possible_function_pointer_reloc(
5966 template<int size, bool big_endian>
5968 Target_aarch64<size, big_endian>::Scan::local_reloc_may_be_function_pointer(
5971 Target_aarch64<size, big_endian>* ,
5972 Sized_relobj_file<size, big_endian>* ,
5975 const elfcpp::Rela<size, big_endian>& ,
5977 const elfcpp::Sym<size, big_endian>&)
5988 template<int size, bool big_endian>
5990 Target_aarch64<size, big_endian>::Scan::global_reloc_may_be_function_pointer(
5993 Target_aarch64<size, big_endian>* ,
5994 Sized_relobj_file<size, big_endian>* ,
5997 const elfcpp::Rela<size, big_endian>& ,
6012 template<int size, bool big_endian>
6014 Target_aarch64<size, big_endian>::Scan::unsupported_reloc_local(
6015 Sized_relobj_file<size, big_endian>* object,
6025 template<int size, bool big_endian>
6027 Target_aarch64<size, big_endian>::Scan::check_non_pic(Relobj* object,
6068 template<int size, bool big_endian>
6070 Target_aarch64<size, big_endian>::Scan::reloc_needs_plt_for_ifunc(
6071 Sized_relobj_file<size, big_endian>* object,
6090 template<int size, bool big_endian>
6092 Target_aarch64<size, big_endian>::Scan::local(
6095 Target_aarch64<size, big_endian>* target,
6096 Sized_relobj_file<size, big_endian>* object,
6099 const elfcpp::Rela<size, big_endian>& rela,
6101 const elfcpp::Sym<size, big_endian>& lsym,
6107 typedef Output_data_reloc<elfcpp::SHT_RELA, true, size, big_endian>
6164 Output_data_got_aarch64<size, big_endian>* got =
6216 tls::Tls_optimization tlsopt = Target_aarch64<size, big_endian>::
6225 Output_data_got_aarch64<size, big_endian>* got =
6234 Output_data_got_aarch64<size, big_endian>* got =
6250 tls::Tls_optimization tlsopt = Target_aarch64<size, big_endian>::
6259 Output_data_got_aarch64<size, big_endian>* got =
6288 tls::Tls_optimization tlsopt = Target_aarch64<size, big_endian>::
6310 tls::Tls_optimization tlsopt = Target_aarch64<size, big_endian>::
6323 Output_data_got<size, big_endian>* got =
6358 template<int size, bool big_endian>
6360 Target_aarch64<size, big_endian>::Scan::unsupported_reloc_global(
6361 Sized_relobj_file<size, big_endian>* object,
6369 template<int size, bool big_endian>
6371 Target_aarch64<size, big_endian>::Scan::global(
6374 Target_aarch64<size, big_endian>* target,
6375 Sized_relobj_file<size, big_endian> * object,
6378 const elfcpp::Rela<size, big_endian>& rela,
6387 typedef Output_data_reloc<elfcpp::SHT_RELA, true, size, big_endian>
6467 Output_data_reloc<elfcpp::SHT_RELA, true, size, big_endian>*
6520 Output_data_got_aarch64<size, big_endian>* got =
6613 tls::Tls_optimization tlsopt = Target_aarch64<size, big_endian>::
6623 Output_data_got_aarch64<size, big_endian>* got =
6636 tls::Tls_optimization tlsopt = Target_aarch64<size, big_endian>::
6657 tls::Tls_optimization tlsopt = Target_aarch64<size, big_endian>::
6664 Output_data_got_aarch64<size, big_endian>* got
6705 tls::Tls_optimization tlsopt = Target_aarch64<size, big_endian>::
6717 Output_data_got<size, big_endian>* got =
6726 Output_data_got<size, big_endian>* got
6750 template<int size, bool big_endian>
6752 Target_aarch64<size, big_endian>::make_plt_section(
6776 template<int size, bool big_endian>
6777 typename Target_aarch64<size, big_endian>::Reloc_section*
6778 Target_aarch64<size, big_endian>::rela_tlsdesc_section(Layout* layout) const
6785 template<int size, bool big_endian>
6787 Target_aarch64<size, big_endian>::make_plt_entry(
6803 template<int size, bool big_endian>
6805 Target_aarch64<size, big_endian>::make_local_ifunc_plt_entry(
6807 Sized_relobj_file<size, big_endian>* relobj,
6820 template<int size, bool big_endian>
6822 Target_aarch64<size, big_endian>::gc_process_relocs(
6825 Sized_relobj_file<size, big_endian>* object,
6835 typedef Target_aarch64<size, big_endian> Aarch64;
6836 typedef gold::Default_classify_reloc<elfcpp::SHT_RELA, size, big_endian>
6844 gold::gc_process_relocs<size, big_endian, Aarch64, Scan, Classify_reloc>(
6860 template<int size, bool big_endian>
6862 Target_aarch64<size, big_endian>::scan_relocs(
6865 Sized_relobj_file<size, big_endian>* object,
6875 typedef Target_aarch64<size, big_endian> Aarch64;
6876 typedef gold::Default_classify_reloc<elfcpp::SHT_RELA, size, big_endian>
6886 gold::scan_relocs<size, big_endian, Aarch64, Scan, Classify_reloc>(
6905 template<int size, bool big_endian>
6907 Target_aarch64<size, big_endian>::do_dynsym_value(const Symbol* gsym) const
6916 template<int size, bool big_endian>
6918 Target_aarch64<size, big_endian>::do_finalize_sections(
7015 template<int size, bool big_endian>
7017 Target_aarch64<size, big_endian>::Relocate::relocate(
7018 const Relocate_info<size, big_endian>* relinfo,
7020 Target_aarch64<size, big_endian>* target,
7033 typedef AArch64_relocate_functions<size, big_endian> Reloc;
7035 const elfcpp::Rela<size, big_endian> rela(preloc);
7050 const Sized_relobj_file<size, big_endian>* object = relinfo->object;
7207 typedef typename elfcpp::Swap<32, big_endian>::Valtype Insntype;
7208 Insntype insn = elfcpp::Swap<32, big_endian>::readval(
7330 template<int size, bool big_endian>
7332 typename AArch64_relocate_functions<size, big_endian>::Status
7333 Target_aarch64<size, big_endian>::Relocate::relocate_tls(
7334 const Relocate_info<size, big_endian>* relinfo,
7335 Target_aarch64<size, big_endian>* target,
7337 const elfcpp::Rela<size, big_endian>& rela,
7343 typedef AArch64_relocate_functions<size, big_endian> aarch64_reloc_funcs;
7355 tls::Tls_optimization tlsopt = Target_aarch64<size, big_endian>::
7358 Sized_relobj_file<size, big_endian>* object = relinfo->object;
7671 template<int size, bool big_endian>
7673 typename AArch64_relocate_functions<size, big_endian>::Status
7674 Target_aarch64<size, big_endian>::Relocate::tls_gd_to_le(
7675 const Relocate_info<size, big_endian>* relinfo,
7676 Target_aarch64<size, big_endian>* target,
7677 const elfcpp::Rela<size, big_endian>& rela,
7682 typedef AArch64_relocate_functions<size, big_endian> aarch64_reloc_funcs;
7683 typedef typename elfcpp::Swap<32, big_endian>::Valtype Insntype;
7687 Insntype insn1 = elfcpp::Swap<32, big_endian>::readval(ip);
7688 Insntype insn2 = elfcpp::Swap<32, big_endian>::readval(ip + 1);
7689 Insntype insn3 = elfcpp::Swap<32, big_endian>::readval(ip + 2);
7730 elfcpp::Swap<32, big_endian>::writeval(ip, insn1);
7731 elfcpp::Swap<32, big_endian>::writeval(ip + 1, insn2);
7732 elfcpp::Swap<32, big_endian>::writeval(ip + 2, insn3);
7771 template<int size, bool big_endian>
7773 typename AArch64_relocate_functions<size, big_endian>::Status
7774 Target_aarch64<size, big_endian>::Relocate::tls_ld_to_le(
7775 const Relocate_info<size, big_endian>* relinfo,
7776 Target_aarch64<size, big_endian>* target,
7777 const elfcpp::Rela<size, big_endian>& rela,
7782 typedef AArch64_relocate_functions<size, big_endian> aarch64_reloc_funcs;
7783 typedef typename elfcpp::Swap<32, big_endian>::Valtype Insntype;
7787 Insntype insn1 = elfcpp::Swap<32, big_endian>::readval(ip);
7788 Insntype insn2 = elfcpp::Swap<32, big_endian>::readval(ip + 1);
7789 Insntype insn3 = elfcpp::Swap<32, big_endian>::readval(ip + 2);
7830 elfcpp::Swap<32, big_endian>::writeval(ip, insn1);
7831 elfcpp::Swap<32, big_endian>::writeval(ip + 1, insn2);
7832 elfcpp::Swap<32, big_endian>::writeval(ip + 2, insn3);
7871 template<int size, bool big_endian>
7873 typename AArch64_relocate_functions<size, big_endian>::Status
7874 Target_aarch64<size, big_endian>::Relocate::tls_ie_to_le(
7875 const Relocate_info<size, big_endian>* relinfo,
7876 Target_aarch64<size, big_endian>* target,
7877 const elfcpp::Rela<size, big_endian>& rela,
7883 typedef typename elfcpp::Swap<32, big_endian>::Valtype Insntype;
7884 typedef AArch64_relocate_functions<size, big_endian> aarch64_reloc_funcs;
7902 Insntype insn = elfcpp::Swap<32, big_endian>::readval(ip);
7921 elfcpp::Swap<32, big_endian>::writeval(ip, newinsn);
7926 template<int size, bool big_endian>
7928 typename AArch64_relocate_functions<size, big_endian>::Status
7929 Target_aarch64<size, big_endian>::Relocate::tls_desc_gd_to_le(
7930 const Relocate_info<size, big_endian>* relinfo,
7931 Target_aarch64<size, big_endian>* target,
7932 const elfcpp::Rela<size, big_endian>& rela,
7938 typedef typename elfcpp::Swap<32, big_endian>::Valtype Insntype;
7939 typedef AArch64_relocate_functions<size, big_endian> aarch64_reloc_funcs;
7994 elfcpp::Swap<32, big_endian>::writeval(ip, newinsn);
7999 template<int size, bool big_endian>
8001 typename AArch64_relocate_functions<size, big_endian>::Status
8002 Target_aarch64<size, big_endian>::Relocate::tls_desc_gd_to_ie(
8003 const Relocate_info<size, big_endian>* /* relinfo */,
8004 Target_aarch64<size, big_endian>* /* target */,
8005 const elfcpp::Rela<size, big_endian>& rela,
8012 typedef typename elfcpp::Swap<32, big_endian>::Valtype Insntype;
8013 typedef AArch64_relocate_functions<size, big_endian> aarch64_reloc_funcs;
8036 elfcpp::Swap<32, big_endian>::writeval(ip, newinsn);
8049 Insntype insn = elfcpp::Swap<32, big_endian>::readval(ip);
8051 elfcpp::Swap<32, big_endian>::writeval(ip, insn);
8071 template<int size, bool big_endian>
8073 Target_aarch64<size, big_endian>::relocate_section(
8074 const Relocate_info<size, big_endian>* relinfo,
8085 typedef Target_aarch64<size, big_endian> Aarch64;
8086 typedef typename Target_aarch64<size, big_endian>::Relocate AArch64_relocate;
8087 typedef gold::Default_classify_reloc<elfcpp::SHT_RELA, size, big_endian>
8092 gold::relocate_section<size, big_endian, Aarch64, AArch64_relocate,
8108 template<int size, bool big_endian>
8110 Target_aarch64<size, big_endian>::scan_relocatable_relocs(
8113 Sized_relobj_file<size, big_endian>* object,
8124 typedef gold::Default_classify_reloc<elfcpp::SHT_RELA, size, big_endian>
8131 gold::scan_relocatable_relocs<size, big_endian, Scan_relocatable_relocs>(
8147 template<int size, bool big_endian>
8149 Target_aarch64<size, big_endian>::emit_relocs_scan(
8152 Sized_relobj_file<size, big_endian>* object,
8163 typedef gold::Default_classify_reloc<elfcpp::SHT_RELA, size, big_endian>
8170 gold::scan_relocatable_relocs<size, big_endian, Emit_relocs_strategy>(
8186 template<int size, bool big_endian>
8188 Target_aarch64<size, big_endian>::relocate_relocs(
8189 const Relocate_info<size, big_endian>* relinfo,
8201 typedef gold::Default_classify_reloc<elfcpp::SHT_RELA, size, big_endian>
8206 gold::relocate_relocs<size, big_endian, Classify_reloc>(
8222 template<int size, bool big_endian>
8224 Target_aarch64<size, big_endian>::is_erratum_843419_sequence(
8225 typename elfcpp::Swap<32,big_endian>::Valtype insn1,
8226 typename elfcpp::Swap<32,big_endian>::Valtype insn2,
8227 typename elfcpp::Swap<32,big_endian>::Valtype insn3)
8252 template<int size, bool big_endian>
8254 Target_aarch64<size, big_endian>::is_erratum_835769_sequence(
8255 typename elfcpp::Swap<32,big_endian>::Valtype insn1,
8256 typename elfcpp::Swap<32,big_endian>::Valtype insn2)
8297 template<int size, bool big_endian>
8299 Target_aarch64<size, big_endian>::create_erratum_stub(
8300 AArch64_relobj<size, big_endian>* relobj,
8315 const int BPI = AArch64_insn_utilities<big_endian>::BYTES_PER_INSN;
8321 stub = new E843419_stub<size, big_endian>(
8341 template<int size, bool big_endian>
8343 Target_aarch64<size, big_endian>::scan_erratum_835769_span(
8344 AArch64_relobj<size, big_endian>* relobj,
8353 const int BPI = AArch64_insn_utilities<big_endian>::BYTES_PER_INSN;
8390 template<int size, bool big_endian>
8392 Target_aarch64<size, big_endian>::scan_erratum_843419_span(
8393 AArch64_relobj<size, big_endian>* relobj,
8483 template<int size, bool big_endian>
8491 { return new Target_aarch64<size, big_endian>(); }