Home | History | Annotate | Download | only in gold

Lines Matching refs:reloc

31 #include "reloc.h"
39 #include "target-reloc.h"
364 // Whether input section has a 14-bit branch reloc.
925 // symbol as the reloc on the insn setting up the __tls_get_addr
931 // Info about the last reloc for error message.
955 const elfcpp::Rela<size, big_endian>& reloc, unsigned int r_type,
964 const elfcpp::Rela<size, big_endian>& reloc, unsigned int r_type,
979 // That means no reloc is of concern here.
1179 // Get the dynamic reloc section, creating it if necessary.
1192 Symbol* sym, const elfcpp::Rela<size, big_endian>& reloc)
1197 reloc
1292 // The dynamic reloc section.
1294 // Relocs saved to avoid a COPY reloc.
1572 Valtype reloc = value >> right_shift;
1574 reloc &= dst_mask;
1575 elfcpp::Swap<fieldsize, big_endian>::writeval(wv, val | reloc);
1599 Valtype reloc = value >> right_shift;
1601 reloc &= dst_mask;
1602 elfcpp::Swap_unaligned<fieldsize, big_endian>::writeval(view, val | reloc);
1766 typedef typename Reloc_types<elfcpp::SHT_RELA, size, big_endian>::Reloc
1777 Reltype reloc(prelocs);
1779 = reloc.get_r_info();
1798 this->set_opd_ent(reloc.get_r_offset(), shndx,
1799 value + reloc.get_r_addend());
1802 expected_off = reloc.get_r_offset();
1805 else if (expected_off != reloc.get_r_offset())
1811 if (expected_off - opd_ent_size + 8 != reloc.get_r_offset())
1816 gold_warning(_("%s: unexpected reloc type %u in .opd section"),
2348 // Get the dynamic reloc section, creating it if necessary.
3098 // The reloc section.
3359 // Add a reloc for an entry in the BRLT.
3364 // Update section and reloc section size.
3402 // The reloc section.
5267 gold_error(_("%s: unsupported reloc %u against local symbol"),
5366 // This prevents us from issuing more than one error per reloc
5372 object->error(_("requires unsupported dynamic reloc; "
5438 // to complain about the reloc type.
5443 // the reloc.
5445 gold_error(_("%s: unsupported reloc %u for IFUNC symbol"),
5461 const elfcpp::Rela<size, big_endian>& reloc,
5493 ppc_object->set_opd_discard(reloc.get_r_offset());
5501 unsigned int r_sym = elfcpp::elf_r_sym<size>(reloc.get_r_info());
5502 target->push_branch(ppc_object, data_shndx, reloc.get_r_offset(),
5503 r_type, r_sym, reloc.get_r_addend());
5522 Address off = reloc.get_r_offset();
5569 unsigned int r_sym = elfcpp::elf_r_sym<size>(reloc.get_r_info());
5577 reloc.get_r_offset(),
5578 reloc.get_r_addend(), false);
5584 data_shndx, reloc.get_r_offset(),
5585 reloc.get_r_addend());
5600 reloc.get_r_offset());
5612 target->push_branch(ppc_object, data_shndx, reloc.get_r_offset(),
5613 r_type, elfcpp::elf_r_sym<size>(reloc.get_r_info()),
5614 reloc.get_r_addend());
5668 unsigned int r_sym = elfcpp::elf_r_sym<size>(reloc.get_r_info());
5716 unsigned int r_sym = elfcpp::elf_r_sym<size>(reloc.get_r_info());
5760 unsigned int r_sym = elfcpp::elf_r_sym<size>(reloc.get_r_info());
5773 unsigned int r_sym = elfcpp::elf_r_sym<size>(reloc.get_r_info());
5826 gold_error(_("%s: unsupported reloc %u against global symbol %s"),
5841 const elfcpp::Rela<size, big_endian>& reloc,
5874 target->push_branch(ppc_object, data_shndx, reloc.get_r_offset(),
5875 r_type, elfcpp::elf_r_sym<size>(reloc.get_r_info()),
5876 reloc.get_r_addend());
5896 Address off = reloc.get_r_offset();
5923 ppc_object->set_opd_discard(reloc.get_r_offset());
5966 reloc.get_r_offset(), r_type,
5967 elfcpp::elf_r_sym<size>(reloc.get_r_info()),
5968 reloc.get_r_addend());
5980 data_shndx, output_section, gsym, reloc);
6002 reloc.get_r_offset(), reloc.get_r_addend());
6011 reloc.get_r_offset(),
6012 reloc.get_r_addend());
6022 target->push_branch(ppc_object, data_shndx, reloc.get_r_offset(),
6024 elfcpp::elf_r_sym<size>(reloc.get_r_info()),
6025 reloc.get_r_addend());
6045 reloc);
6053 data_shndx, reloc.get_r_offset(),
6054 reloc.get_r_addend());
6063 target->push_branch(ppc_object, data_shndx, reloc.get_r_offset(),
6064 r_type, elfcpp::elf_r_sym<size>(reloc.get_r_info()),
6065 reloc.get_r_addend());
6503 gold_error(_("%s: unsupported REL reloc section"),
6706 // reloc.
6807 _("__tls_get_addr call lacks marker reloc"));
6818 typedef Powerpc_relocate_functions<size, big_endian> Reloc;
7453 typename Reloc::Overflow_check overflow = Reloc::CHECK_NONE;
7460 overflow = Reloc::CHECK_BITFIELD;
7465 overflow = Reloc::CHECK_SIGNED;
7469 overflow = Reloc::CHECK_BITFIELD;
7476 overflow = Reloc::CHECK_BITFIELD;
7478 overflow = Reloc::CHECK_LOW_INSN;
7508 overflow = Reloc::CHECK_HIGH_INSN;
7521 overflow = Reloc::CHECK_LOW_INSN;
7540 overflow = Reloc::CHECK_SIGNED;
7544 if (overflow == Reloc::CHECK_LOW_INSN
7545 || overflow == Reloc::CHECK_HIGH_INSN)
7551 overflow = Reloc::CHECK_BITFIELD;
7552 else if (overflow == Reloc::CHECK_LOW_INSN
7559 overflow = Reloc::CHECK_UNSIGNED;
7561 overflow = Reloc::CHECK_SIGNED;
7578 Reloc::addr64(view, value);
7584 Reloc::addr64(view, value);
7586 status = Reloc::addr32(view, value, overflow);
7590 Reloc::addr64_u(view, value);
7594 status = Reloc::addr32(view, value, overflow);
7599 status = Reloc::addr32_u(view, value, overflow);
7606 Reloc::addr24(view, value, overflow);
7613 status = Reloc::addr16_ds(view, value, overflow);
7636 status = Reloc::addr16(view, value, overflow);
7640 status = Reloc::addr16_u(view, value, overflow);
7660 Reloc::addr16_hi(view, value);
7680 Reloc::addr16_ha(view, value);
7689 Reloc::addr16_hi2(view, value);
7698 Reloc::addr16_ha2(view, value);
7707 Reloc::addr16_hi3(view, value);
7716 Reloc::addr16_ha3(view, value);
7737 status = Reloc::addr16_ds(view, value, overflow);
7746 status = Reloc::addr14(view, value, overflow);
7757 _("unexpected reloc %u in object file"),
7798 _("unsupported reloc %u"),
7923 // target-reloc.h. Using relocate_special_relocatable for
7945 typedef typename Reloc_types<elfcpp::SHT_RELA, size, big_endian>::Reloc
7971 Reltype reloc(prelocs);
7974 Address offset = reloc.get_r_offset();
7975 typename elfcpp::Elf_types<size>::Elf_WXword r_info = reloc.get_r_info();
7980 = reloc.get_r_addend();
8064 // Handle the reloc addend based on the strategy.