Lines Matching refs:adrpRel
602 bool AArch64Relaxer::tryRelaxAdrpAdd(const Relocation &adrpRel, in tryRelaxAdrpAdd() argument
612 if (!config->relax || adrpRel.type != R_AARCH64_ADR_PREL_PG_HI21 || in tryRelaxAdrpAdd()
616 if (adrpRel.offset + 4 != addRel.offset) in tryRelaxAdrpAdd()
618 if (adrpRel.sym != addRel.sym) in tryRelaxAdrpAdd()
620 if (adrpRel.addend != 0 || addRel.addend != 0) in tryRelaxAdrpAdd()
623 uint32_t adrpInstr = read32le(buf + adrpRel.offset); in tryRelaxAdrpAdd()
635 Symbol &sym = *adrpRel.sym; in tryRelaxAdrpAdd()
644 write32le(buf + adrpRel.offset, 0xd503201f); in tryRelaxAdrpAdd()
651 bool AArch64Relaxer::tryRelaxAdrpLdr(const Relocation &adrpRel, in tryRelaxAdrpLdr() argument
665 if (adrpRel.type != R_AARCH64_ADR_GOT_PAGE || in tryRelaxAdrpLdr()
669 if (adrpRel.offset + 4 != ldrRel.offset) in tryRelaxAdrpLdr()
673 if (!adrpRel.sym || adrpRel.sym != ldrRel.sym || !adrpRel.sym->isDefined() || in tryRelaxAdrpLdr()
674 adrpRel.sym->isPreemptible || adrpRel.sym->isGnuIFunc()) in tryRelaxAdrpLdr()
677 if (adrpRel.addend != 0 || ldrRel.addend != 0) in tryRelaxAdrpLdr()
679 uint32_t adrpInstr = read32le(buf + adrpRel.offset); in tryRelaxAdrpLdr()
695 Symbol &sym = *adrpRel.sym; in tryRelaxAdrpLdr()
703 getAArch64Page(sym.getVA()) - getAArch64Page(secAddr + adrpRel.offset); in tryRelaxAdrpLdr()
708 adrpRel.offset, /*addend=*/0, &sym}; in tryRelaxAdrpLdr()