Lines Matching refs:rsym

70   // rsym - The relocation target symbol
71 ResolveInfo* rsym = pReloc.symInfo();
73 assert(NULL == pParent.getSymGOTMap().lookUp(*rsym));
76 pParent.getSymGOTMap().record(*rsym, *got_entry);
84 if (helper_use_relative_reloc(*rsym, pParent)) {
85 helper_DynRel_init(rsym, *got_entry, 0x0, llvm::ELF::R_386_RELATIVE,
90 helper_DynRel_init(rsym, *got_entry, 0x0, llvm::ELF::R_386_GLOB_DAT,
116 // rsym - The relocation target symbol
117 ResolveInfo* rsym = pReloc.symInfo();
119 assert(NULL == pParent.getSymPLTMap().lookUp(*rsym));
122 pParent.getSymPLTMap().record(*rsym, *plt_entry);
125 assert(NULL == pParent.getSymGOTPLTMap().lookUp(*rsym) &&
128 pParent.getSymGOTPLTMap().record(*rsym, *gotplt_entry);
134 rel_entry.setSymInfo(rsym);
188 // rsym - The relocation target symbol
189 ResolveInfo* rsym = pReloc.symInfo();
190 assert(NULL != rsym &&
199 if (rsym->isLocal()) // rsym is local
201 else // rsym is external
206 if (rsym->isUndef() && !rsym->isDyn() && !rsym->isWeak() && !rsym->isNull())
348 // rsym - The relocation target symbol
349 ResolveInfo* rsym = pReloc.symInfo();
359 rsym->setReserved(rsym->reserved() | ReserveRel);
362 helper_DynRel_init(rsym,
377 helper_DynRel_init(rsym, *pReloc.targetRef().frag(),
380 rsym->setReserved(rsym->reserved() | ReserveRel);
396 if (rsym->reserved() & ReserveGOT)
405 config().codeGenType() || rsym->isUndef() || rsym->isDyn()) {
408 rsym->setReserved(rsym->reserved() | ReserveGOT);
415 rsym->setReserved(rsym->reserved() | ReserveGOT);
425 if (rsym->reserved() & ReserveGOT)
434 &rsym->outSymbol()->fragRef()->frag()->getParent()->getSection();
442 else if (&file_format->getTBSS() == sym_sect || rsym->isCommon()) {
449 error(diag::invalid_tls) << rsym->name() << sym_sect->name();
453 rsym->setReserved(rsym->reserved() | ReserveGOT);
456 getSymGOTMap().record(*rsym, *got_entry1, *got_entry2);
462 Relocation& rel_entry1 = helper_DynRel_init(rsym, *got_entry1, 0x0,
481 helper_DynRel_init(rsym, *pReloc.targetRef().frag(),
484 rsym->setReserved(rsym->reserved() | ReserveRel);
493 if (rsym->reserved() & ReserveGOT)
498 getSymGOTMap().record(*rsym, *got_entry);
500 helper_DynRel_init(rsym, *got_entry, 0x0, llvm::ELF::R_386_TLS_TPOFF,
503 rsym->setReserved(rsym->reserved() | ReserveGOT);
505 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
511 if (rsym->reserved() & ReserveGOT)
515 getSymGOTMap().record(*rsym, *got_entry);
517 helper_DynRel_init(rsym, *got_entry, 0x0, llvm::ELF::R_386_TLS_TPOFF,
520 rsym->setReserved(rsym->reserved() | ReserveGOT);
521 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
530 helper_DynRel_init(rsym,
535 rsym->setReserved(rsym->reserved() | ReserveRel);
537 // the target symbol of the dynamic relocation is rsym, so we need to
539 assert(NULL != rsym->outSymbol());
540 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
556 // rsym - The relocation target symbol
557 ResolveInfo* rsym = pReloc.symInfo();
565 if (getTarget().symbolNeedsPLT(*rsym)) {
567 if (!(rsym->reserved() & ReservePLT)){
573 rsym->setReserved(rsym->reserved() | ReservePLT);
577 if (getTarget().symbolNeedsDynRel(*rsym, (rsym->reserved() & ReservePLT),
580 if (getTarget().symbolNeedsCopyReloc(pReloc, *rsym)) {
581 LDSymbol& cpy_sym = defineSymbolforCopyReloc(pBuilder, *rsym, getTarget());
586 rsym->setReserved(rsym->reserved() | ReserveRel);
589 helper_use_relative_reloc(*rsym, *this))
590 helper_DynRel_init(rsym,
596 helper_DynRel_init(rsym,
615 if (rsym->reserved() & ReservePLT)
619 if (getTarget().symbolFinalValueIsKnown(*rsym))
624 if (rsym->isDefine() && !rsym->isDyn() &&
625 !getTarget().isSymbolPreemptible(*rsym))
633 rsym->setReserved(rsym->reserved() | ReservePLT);
639 if (rsym->reserved() & ReserveGOT)
645 config().codeGenType() || rsym->isUndef() || rsym->isDyn())
650 rsym->setReserved(rsym->reserved() | ReserveGOT);
657 if (getTarget().symbolNeedsPLT(*rsym) &&
660 if (!(rsym->reserved() & ReservePLT)){
666 rsym->setReserved(rsym->reserved() | ReservePLT);
670 if (getTarget().symbolNeedsDynRel(*rsym, (rsym->reserved() & ReservePLT),
673 if (getTarget().symbolNeedsCopyReloc(pReloc, *rsym)) {
674 LDSymbol& cpy_sym = defineSymbolforCopyReloc(pBuilder, *rsym,
680 rsym->setReserved(rsym->reserved() | ReserveRel);
683 helper_use_relative_reloc(*rsym, *this))
684 helper_DynRel_init(rsym,
690 helper_DynRel_init(rsym,
701 if (rsym->reserved() & ReserveGOT)
707 getSymGOTMap().record(*rsym, *got_entry1, *got_entry2);
710 // setup dyn rel for got entries against rsym
711 helper_DynRel_init(rsym, *got_entry1, 0x0,
713 helper_DynRel_init(rsym, *got_entry2, 0x0,
716 // add the rsym to dynamic symbol table
717 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
719 rsym->setReserved(rsym->reserved() | ReserveGOT);
734 helper_DynRel_init(rsym, *pReloc.targetRef().frag(),
737 rsym->setReserved(rsym->reserved() | ReserveRel);
741 if (getTarget().symbolFinalValueIsKnown(*rsym)) {
746 if (rsym->reserved() & ReserveGOT)
750 getSymGOTMap().record(*rsym, *got_entry);
752 helper_DynRel_init(rsym, *got_entry, 0x0, llvm::ELF::R_386_TLS_TPOFF,
755 rsym->setReserved(rsym->reserved() | ReserveGOT);
761 if (rsym->reserved() & ReserveGOT)
765 getSymGOTMap().record(*rsym, *got_entry);
767 helper_DynRel_init(rsym, *got_entry, 0x0, llvm::ELF::R_386_TLS_TPOFF,
769 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
771 rsym->setReserved(rsym->reserved() | ReserveGOT);
780 helper_DynRel_init(rsym,
785 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
786 rsym->setReserved(rsym->reserved() | ReserveRel);
884 ResolveInfo* rsym = pReloc.symInfo();
888 *rsym,
889 (rsym->reserved() & X86Relocator::ReservePLT),
902 if (!rsym->isLocal()) {
903 if (rsym->reserved() & X86Relocator::ReservePLT) {
904 S = helper_get_PLT_address(*rsym, pParent);
911 (!helper_use_relative_reloc(*rsym, pParent)))
925 ResolveInfo* rsym = pReloc.symInfo();
930 *rsym,
931 (rsym->reserved() & X86Relocator::ReservePLT),
943 if (!rsym->isLocal()) {
944 if (rsym->reserved() & X86Relocator::ReservePLT) {
945 S = helper_get_PLT_address(*rsym, pParent);
949 if (!helper_use_relative_reloc(*rsym, pParent))
982 ResolveInfo* rsym = pReloc.symInfo();
983 if (!(rsym->reserved() & (X86Relocator::ReserveGOT)))
1020 ResolveInfo* rsym = pReloc.symInfo();
1022 if (!(rsym->reserved() & X86Relocator::ReserveGOT))
1027 // get first got entry, if there is already a got entry for rsym, then apply
1030 X86_32GOTEntry* got_entry1 = pParent.getSymGOTMap().lookUpFirstEntry(*rsym);
1033 if (rsym->isLocal())
1034 pParent.getSymGOTMap().lookUpSecondEntry(*rsym)->setValue(pReloc.symValue());
1077 ResolveInfo* rsym = pReloc.symInfo();
1078 if (!(rsym->reserved() & X86Relocator::ReserveGOT)) {
1083 X86_32GOTEntry* got_entry = pParent.getSymGOTMap().lookUp(*rsym);
1098 ResolveInfo* rsym = pReloc.symInfo();
1099 if (!(rsym->reserved() & X86Relocator::ReserveGOT)) {
1104 X86_32GOTEntry* got_entry = pParent.getSymGOTMap().lookUp(*rsym);
1184 // rsym - The relocation target symbol
1185 ResolveInfo* rsym = pReloc.symInfo();
1187 assert(NULL == pParent.getSymGOTMap().lookUp(*rsym));
1190 pParent.getSymGOTMap().record(*rsym, *got_entry);
1199 if (helper_use_relative_reloc(*rsym, pParent)) {
1200 Relocation& rel_entry = helper_DynRel_init(rsym, *got_entry, 0x0,
1206 helper_DynRel_init(rsym, *got_entry, 0x0, llvm::ELF::R_X86_64_GLOB_DAT,
1241 // rsym - The relocation target symbol
1242 ResolveInfo* rsym = pReloc.symInfo();
1244 assert(NULL == pParent.getSymPLTMap().lookUp(*rsym));
1247 pParent.getSymPLTMap().record(*rsym, *plt_entry);
1250 assert(NULL == pParent.getSymGOTPLTMap().lookUp(*rsym) &&
1253 pParent.getSymGOTPLTMap().record(*rsym, *gotplt_entry);
1259 rel_entry.setSymInfo(rsym);
1356 // rsym - The relocation target symbol
1357 ResolveInfo* rsym = pReloc.symInfo();
1365 Relocation& reloc = helper_DynRel_init(rsym,
1372 rsym->setReserved(rsym->reserved() | ReserveRel);
1385 Relocation& reloc = helper_DynRel_init(rsym,
1392 rsym->setReserved(rsym->reserved() | ReserveRel);
1405 if (rsym->reserved() & ReserveGOT)
1412 config().codeGenType() || rsym->isUndef() || rsym->isDyn())
1416 rsym->setReserved(rsym->reserved() | ReserveGOT);
1431 // rsym - The relocation target symbol
1432 ResolveInfo* rsym = pReloc.symInfo();
1442 if (getTarget().symbolNeedsPLT(*rsym)) {
1444 if (!(rsym->reserved() & ReservePLT)){
1450 rsym->setReserved(rsym->reserved() | ReservePLT);
1454 if (getTarget().symbolNeedsDynRel(*rsym, (rsym->reserved() & ReservePLT),
1457 if (getTarget().symbolNeedsCopyReloc(pReloc, *rsym)) {
1458 LDSymbol& cpy_sym = defineSymbolforCopyReloc(pBuilder, *rsym, getTarget());
1463 rsym->setReserved(rsym->reserved() | ReserveRel);
1466 helper_use_relative_reloc(*rsym, *this)) {
1467 Relocation& reloc = helper_DynRel_init(rsym,
1475 Relocation& reloc = helper_DynRel_init(rsym,
1490 if (rsym->reserved() & ReserveGOT)
1497 config().codeGenType() || rsym->isUndef() || rsym->isDyn())
1502 rsym->setReserved(rsym->reserved() | ReserveGOT);
1509 if (rsym->reserved() & ReservePLT)
1513 if (getTarget().symbolFinalValueIsKnown(*rsym))
1518 if (rsym->isDefine() && !rsym->isDyn() &&
1519 !getTarget().isSymbolPreemptible(*rsym)) {
1528 rsym->setReserved(rsym->reserved() | ReservePLT);
1534 if (getTarget().symbolNeedsPLT(*rsym) &&
1537 if (!(rsym->reserved() & ReservePLT)){
1543 rsym->setReserved(rsym->reserved() | ReservePLT);
1552 if (getTarget().isDynamicSymbol(*rsym) &&
1553 getTarget().symbolNeedsDynRel(*rsym,
1554 (rsym->reserved() & ReservePLT),
1556 getTarget().symbolNeedsCopyReloc(pReloc, *rsym)) {
1557 LDSymbol& cpy_sym = defineSymbolforCopyReloc(pBuilder, *rsym, getTarget());
1584 ResolveInfo* rsym = pReloc.symInfo();
1599 if (rsym->isLocal() && has_dyn_rel) {
1605 if (!rsym->isLocal()) {
1606 if (rsym->reserved() & X86Relocator::ReservePLT) {
1607 S = helper_get_PLT_address(*rsym, pParent);
1614 helper_use_relative_reloc(*rsym, pParent)) {
1632 ResolveInfo* rsym = pReloc.symInfo();
1645 !rsym->isLocal() && rsym->reserved() & X86Relocator::ReservePLT)
1646 S = helper_get_PLT_address(*rsym, pParent);
1706 ResolveInfo* rsym = pReloc.symInfo();
1726 if (!rsym->isLocal()) {
1727 if (rsym->reserved() & X86Relocator::ReservePLT) {
1728 S = helper_get_PLT_address(*rsym, pParent);
1731 *rsym,
1732 (rsym->reserved() & X86Relocator::ReservePLT),