Home | History | Annotate | Download | only in bfd

Lines Matching refs:reloc

191    the code in reloc.c assumes that we can manipulate the targets of
209 /* Adjust the reloc address to that in the output section. */
236 /* Internal reloc for relaxing. This is created when a 16-bit pc-relative
249 /* Turn a howto into a reloc number. */
259 /* Code to swap in the reloc. */
347 /* Perform any necessary magic to the addend in a reloc entry. */
352 #define RELOC_PROCESSING(relent,reloc,symbols,abfd,section) \
353 reloc_processing (relent, reloc, symbols, abfd, section)
356 reloc_processing (arelent *relent, struct internal_reloc *reloc,
359 relent->address = reloc->r_vaddr;
360 rtype2howto (relent, reloc);
362 if (((int) reloc->r_symndx) > 0)
363 relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx];
367 relent->addend = reloc->r_offset;
395 /* If RELOC represents a relaxable instruction/reloc, change it into
396 the relaxed reloc, notify the linker that symbol addresses
404 h8300_reloc16_estimate (bfd *abfd, asection *input_section, arelent *reloc,
414 the size of the shrink - but we don't change reloc->address here,
417 bfd_vma address = reloc->address - shrink;
423 switch (reloc->howto->type)
430 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
432 /* Get the address of the next instruction (not the reloc). */
437 dot += (reloc->howto->type == R_JMP1 ? 1 : 2);
450 reloc->address, 1))
492 && last_reloc->address + 1 == reloc->address
495 reloc->howto = howto_table + 19;
497 last_reloc->sym_ptr_ptr = reloc->sym_ptr_ptr;
498 last_reloc->addend = reloc->addend;
505 /* Change the reloc type. */
506 reloc->howto = reloc->howto + 1;
519 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section) + 1;
533 /* Change the reloc type. */
534 reloc->howto = howto_table + 15;
546 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
553 /* Change the reloc type. */
554 reloc->howto = reloc->howto + 1;
567 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
572 /* Change the reloc type. */
573 reloc->howto = reloc->howto + 1;
579 /* Done with this reloc. */
583 /* FALLTHROUGH and try to turn the 24-/32-bit reloc into a 16-bit
584 reloc. */
590 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
597 /* Change the reloc type. */
598 reloc->howto = howto_table + 17;
606 /* No other reloc types represent relaxing opportunities. */
611 last_reloc = reloc;
623 struct bfd_link_order *link_order, arelent *reloc,
635 switch (reloc->howto->type)
640 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
653 bfd_asymbol_name (*reloc->sym_ptr_ptr),
654 reloc->howto->name, reloc->addend, input_section->owner,
655 input_section, reloc->address)))
671 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
673 /* Get the address of the instruction (not the reloc). */
685 bfd_asymbol_name (*reloc->sym_ptr_ptr),
686 reloc->howto->name, reloc->addend, input_section->owner,
687 input_section, reloc->address)))
703 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
716 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
727 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
736 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
755 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
775 bfd_asymbol_name (*reloc->sym_ptr_ptr),
776 reloc->howto->name, reloc->addend, input_section->owner,
777 input_section, reloc->address)))
785 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
799 bfd_asymbol_name (*reloc->sym_ptr_ptr),
800 reloc->howto->name, reloc->addend, input_section->owner,
801 input_section, reloc->address)))
832 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
834 /* Get the address of the instruction (not the reloc). */
846 bfd_asymbol_name (*reloc->sym_ptr_ptr),
847 reloc->howto->name, reloc->addend, input_section->owner,
848 input_section, reloc->address)))
884 /* We don't advance dst_address -- the 8-bit reloc is applied at
893 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
895 /* Get the address of the instruction (not the reloc). */
933 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
987 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
1033 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
1046 bfd_asymbol_name (*reloc->sym_ptr_ptr),
1047 reloc->howto->name, reloc->addend, input_section->owner,
1048 input_section, reloc->address)))
1073 If this is a reloc against the absolute symbol, then
1094 (_("cannot handle R_MEM_INDIRECT reloc when using %s output"),
1108 /* First see if this is a reloc against the absolute symbol
1110 symbol = *(reloc->sym_ptr_ptr);
1111 value = bfd_coff_reloc16_get_value (reloc, link_info, input_section);
1118 reloc overflow callback. */
1129 bfd_asymbol_name (*reloc->sym_ptr_ptr),
1130 reloc->howto->name, reloc->addend, input_section->owner,
1131 input_section, reloc->address)))
1165 reloc's address. */
1180 bfd_coff_reloc16_get_value (reloc,
1188 bfd_coff_reloc16_get_value (reloc,
1314 arelent *reloc = relocs[i];
1315 asymbol *symbol = *(reloc->sym_ptr_ptr);
1318 /* We've got an indirect reloc. See if we need to add it
1321 by an R_MEM_INDIRECT relocation except for a reloc
1323 if (reloc->howto->type == R_MEM_INDIRECT