Lines Matching defs:rel

147 riscv_elf_append_rela (bfd *abfd, asection *s, Elf_Internal_Rela *rel)
154 bed->s->swap_reloca_out (abfd, rel, loc);
299 ? ".rela.got" : ".rel.got"),
502 const Elf_Internal_Rela *rel;
515 for (rel = relocs; rel < relocs + sec->reloc_count; rel++)
521 r_symndx = ELFNN_R_SYM (rel->r_info);
522 r_type = ELFNN_R_TYPE (rel->r_info);
722 if (!bfd_elf_gc_record_vtinherit (abfd, sec, h, rel->r_offset))
727 if (!bfd_elf_gc_record_vtentry (abfd, sec, h, rel->r_addend))
742 Elf_Internal_Rela *rel,
747 switch (ELFNN_R_TYPE (rel->r_info))
754 return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
765 const Elf_Internal_Rela *rel, *relend;
775 for (rel = relocs, relend = relocs + sec->reloc_count; rel < relend; rel++)
780 r_symndx = ELFNN_R_SYM (rel->r_info);
801 switch (ELFNN_R_TYPE (rel->r_info))
967 .rel.bss section we are going to use. */
1477 const Elf_Internal_Rela *rel,
1484 value -= sec_addr (input_section) + rel->r_offset;
1485 value += rel->r_addend;
1487 switch (ELFNN_R_TYPE (rel->r_info))
1577 bfd_vma word = bfd_get (howto->bitsize, input_bfd, contents + rel->r_offset);
1579 bfd_put (howto->bitsize, input_bfd, word, contents + rel->r_offset);
1749 Elf_Internal_Rela *rel;
1763 for (rel = relocs; rel < relend; rel++)
1774 bfd_vma pc = sec_addr (input_section) + rel->r_offset;
1775 int r_type = ELFNN_R_TYPE (rel->r_info), tls_type;
1783 r_symndx = ELFNN_R_SYM (rel->r_info);
1792 relocation = _bfd_elf_rela_local_sym (output_bfd, sym, &sec, rel);
1798 RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
1816 rel, 1, relend, howto, 0, contents);
1940 contents + rel->r_offset);
1952 contents + rel->r_offset);
1981 if (VALID_ITYPE_IMM (relocation + rel->r_addend))
1984 bfd_vma insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
1987 bfd_put_32 (input_bfd, insn, contents + rel->r_offset);
1997 bfd_boolean x0_base = VALID_ITYPE_IMM (relocation + rel->r_addend);
1998 if (x0_base || VALID_ITYPE_IMM (relocation + rel->r_addend - gp))
2001 bfd_vma insn = bfd_get_32 (input_bfd, contents + rel->r_offset);
2005 rel->r_addend -= gp;
2008 bfd_put_32 (input_bfd, insn, contents + rel->r_offset);
2017 relocation + rel->r_addend))
2024 howto, rel, relocation, name,
2064 rel->r_offset);
2077 outrel.r_addend = rel->r_addend;
2082 outrel.r_addend = relocation + rel->r_addend;
2229 rel->r_offset) != (bfd_vma) -1)
2235 (long) rel->r_offset,
2242 r = perform_relocation (howto, rel, relocation, input_section,
2253 (bfd_vma) 0, input_bfd, input_section, rel->r_offset);
2258 (info, name, input_bfd, input_section, rel->r_offset,
2281 (info, msg, name, input_bfd, input_section, rel->r_offset);
2557 const arelent *rel ATTRIBUTE_UNUSED)
2713 Elf_Internal_Rela *rel,
2720 bfd_signed_vma foff = symval - (sec_addr (sec) + rel->r_offset);
2735 BFD_ASSERT (rel->r_offset + 8 <= sec->size);
2737 auipc = bfd_get_32 (abfd, contents + rel->r_offset);
2738 jalr = bfd_get_32 (abfd, contents + rel->r_offset + 4);
2763 rel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info), r_type);
2765 bfd_put (8 * len, abfd, auipc, contents + rel->r_offset);
2769 return riscv_relax_delete_bytes (abfd, sec, rel->r_offset + len, 8 - len);
2796 Elf_Internal_Rela *rel,
2810 BFD_ASSERT (rel->r_offset + 4 <= sec->size);
2831 unsigned sym = ELFNN_R_SYM (rel->r_info);
2832 switch (ELFNN_R_TYPE (rel->r_info))
2835 rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_I);
2839 rel->r_info = ELFNN_R_INFO (sym, R_RISCV_GPREL_S);
2844 rel->r_info = ELFNN_R_INFO (0, R_RISCV_NONE);
2846 return riscv_relax_delete_bytes (abfd, sec, rel->r_offset, 4);
2856 && ELFNN_R_TYPE (rel->r_info) == R_RISCV_HI20
2861 bfd_vma lui = bfd_get_32 (abfd, contents + rel->r_offset);
2866 bfd_put_32 (abfd, lui, contents + rel->r_offset);
2869 rel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info), R_RISCV_RVC_LUI);
2872 return riscv_relax_delete_bytes (abfd, sec, rel->r_offset + 2, 2);
2885 Elf_Internal_Rela *rel,
2895 BFD_ASSERT (rel->r_offset + 4 <= sec->size);
2896 switch (ELFNN_R_TYPE (rel->r_info))
2899 rel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info), R_RISCV_TPREL_I);
2903 rel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info), R_RISCV_TPREL_S);
2909 rel->r_info = ELFNN_R_INFO (0, R_RISCV_NONE);
2911 return riscv_relax_delete_bytes (abfd, sec, rel->r_offset, 4);
2924 Elf_Internal_Rela *rel,
2932 while (alignment <= rel->r_addend)
2935 symval -= rel->r_addend;
2943 if (rel->r_addend < nop_bytes)
2947 rel->r_info = ELFNN_R_INFO (0, R_RISCV_NONE);
2950 if (nop_bytes == rel->r_addend)
2955 bfd_put_32 (abfd, RISCV_NOP, contents + rel->r_offset + pos);
2959 bfd_put_16 (abfd, RVC_NOP, contents + rel->r_offset + pos);
2962 return riscv_relax_delete_bytes (abfd, sec, rel->r_offset + nop_bytes,
2963 rel->r_addend - nop_bytes);
3005 Elf_Internal_Rela *rel = relocs + i;
3007 int type = ELFNN_R_TYPE (rel->r_info);
3028 || ELFNN_R_TYPE ((rel + 1)->r_info) != R_RISCV_RELAX
3029 || rel->r_offset != (rel + 1)->r_offset)
3057 if (ELFNN_R_SYM (rel->r_info) < symtab_hdr->sh_info)
3061 + ELFNN_R_SYM (rel->r_info));
3062 reserve_size = (isym->st_size - rel->r_addend) > isym->st_size
3063 ? 0 : isym->st_size - rel->r_addend;
3066 sym_sec = sec, symval = sec_addr (sec) + rel->r_offset;
3081 indx = ELFNN_R_SYM (rel->r_info) - symtab_hdr->sh_info;
3099 (h->size - rel->r_addend) > h->size ? 0 : h->size - rel->r_addend;
3103 symval += rel->r_addend;
3105 if (!relax_func (abfd, sec, sym_sec, info, rel, symval,