Lines Matching refs:Rel

594 static int64_t computeMipsAddend(const RelTy &Rel, const RelTy *End,  in computeMipsAddend()  argument
605 RelType Type = Rel.getType(Config->IsMips64EL); in computeMipsAddend()
611 uint32_t SymIndex = Rel.getSymbol(Config->IsMips64EL); in computeMipsAddend()
615 for (const RelTy *RI = &Rel; RI != End; ++RI) in computeMipsAddend()
629 static int64_t computeAddend(const RelTy &Rel, const RelTy *End, in computeAddend() argument
633 RelType Type = Rel.getType(Config->IsMips64EL); in computeAddend()
636 Addend = getAddend<ELFT>(Rel); in computeAddend()
639 Addend = Target->getImplicitAddend(Buf + Rel.r_offset, Type); in computeAddend()
645 Addend += computeMipsAddend<ELFT>(Rel, End, Sec, Expr, IsLocal); in computeAddend()
689 template <class RelTy> static RelType getMipsN32RelType(RelTy *&Rel, RelTy *End) { in getMipsN32RelType() argument
691 uint64_t Offset = Rel->r_offset; in getMipsN32RelType()
694 while (Rel != End && Rel->r_offset == Offset) in getMipsN32RelType()
695 Type |= (Rel++)->getType(Config->IsMips64EL) << (8 * N++); in getMipsN32RelType()
765 RelocationBaseSection *Rel, RelType Type, Symbol &Sym) { in addPltEntry() argument
768 Rel->addReloc( in addPltEntry()
845 uint64_t Offset, Symbol &Sym, const RelTy &Rel, in processRelocAux() argument
863 } else if (RelType Rel = Target->getDynRel(Type)) { in processRelocAux() local
864 In.RelaDyn->addReloc(Rel, &Sec, Offset, &Sym, Addend, R_ADDEND, Type); in processRelocAux()
984 const RelTy &Rel = *I; in scanReloc() local
985 Symbol &Sym = Sec.getFile<ELFT>()->getRelocTargetSym(Rel); in scanReloc()
992 Type = Rel.getType(Config->IsMips64EL); in scanReloc()
997 uint64_t Offset = GetOffset.get(Rel.r_offset); in scanReloc()
1002 if (maybeReportUndefined(Sym, Sec, Rel.r_offset)) in scanReloc()
1005 const uint8_t *RelocatedAddr = Sec.data().begin() + Rel.r_offset; in scanReloc()
1047 int64_t Addend = computeAddend<ELFT>(Rel, End, Sec, Expr, Sym.isLocal()); in scanReloc()
1082 processRelocAux<ELFT>(Sec, Expr, Type, Offset, Sym, Rel, Addend); in scanReloc()
1416 bool ThunkCreator::normalizeExistingThunk(Relocation &Rel, uint64_t Src) { in normalizeExistingThunk() argument
1417 if (Thunk *T = Thunks.lookup(Rel.Sym)) { in normalizeExistingThunk()
1418 if (Target->inBranchRange(Rel.Type, Src, Rel.Sym->getVA())) in normalizeExistingThunk()
1420 Rel.Sym = &T->Destination; in normalizeExistingThunk()
1421 if (Rel.Sym->isInPlt()) in normalizeExistingThunk()
1422 Rel.Expr = toPlt(Rel.Expr); in normalizeExistingThunk()
1471 for (Relocation &Rel : IS->Relocations) { in createThunks()
1472 uint64_t Src = IS->getVA(Rel.Offset); in createThunks()
1477 if (Pass > 0 && normalizeExistingThunk(Rel, Src)) in createThunks()
1480 if (!Target->needsThunk(Rel.Expr, Rel.Type, IS->File, Src, in createThunks()
1481 *Rel.Sym)) in createThunks()
1486 std::tie(T, IsNew) = getThunk(*Rel.Sym, Rel.Type, Src); in createThunks()
1494 TS = getISDThunkSec(OS, IS, ISD, Rel.Type, Src); in createThunks()
1500 Rel.Sym = T->getThunkTargetSym(); in createThunks()
1501 Rel.Expr = fromPlt(Rel.Expr); in createThunks()