Lines Matching defs:rsym

62   // rsym - The relocation target symbol
63 ResolveInfo* rsym = pReloc.symInfo();
65 assert(pParent.getSymGOTMap().lookUp(*rsym) == NULL);
68 pParent.getSymGOTMap().record(*rsym, *got_entry);
75 if (helper_use_relative_reloc(*rsym, pParent)) {
77 rsym, *got_entry, 0x0, llvm::ELF::R_386_RELATIVE, pParent);
81 rsym, *got_entry, 0x0, llvm::ELF::R_386_GLOB_DAT, pParent);
101 // rsym - The relocation target symbol
102 ResolveInfo* rsym = pReloc.symInfo();
104 assert(pParent.getSymPLTMap().lookUp(*rsym) == NULL);
107 pParent.getSymPLTMap().record(*rsym, *plt_entry);
110 assert(pParent.getSymGOTPLTMap().lookUp(*rsym) == NULL &&
113 pParent.getSymGOTPLTMap().record(*rsym, *gotplt_entry);
119 rel_entry.setSymInfo(rsym);
167 // rsym - The relocation target symbol
168 ResolveInfo* rsym = pReloc.symInfo();
169 assert(rsym != NULL &&
178 if (rsym->isLocal()) // rsym is local
180 else // rsym is external
185 if (rsym->isUndef() && !rsym->isDyn() && !rsym->isWeak() && !rsym->isNull())
315 // rsym - The relocation target symbol
316 ResolveInfo* rsym = pReloc.symInfo();
325 rsym->setReserved(rsym->reserved() | ReserveRel);
328 helper_DynRel_init(rsym,
343 helper_DynRel_init(rsym,
349 rsym->setReserved(rsym->reserved() | ReserveRel);
365 if (rsym->reserved() & ReserveGOT)
378 rsym->setReserved(rsym->reserved() | ReserveGOT);
388 if (rsym->reserved() & ReserveGOT)
397 &rsym->outSymbol()->fragRef()->frag()->getParent()->getSection();
404 } else if (&file_format->getTBSS() == sym_sect || rsym->isCommon()) {
410 error(diag::invalid_tls) << rsym->name() << sym_sect->name();
415 rsym->setReserved(rsym->reserved() | ReserveGOT);
418 getSymGOTMap().record(*rsym, *got_entry1, *got_entry2);
425 rsym, *got_entry1, 0x0, llvm::ELF::R_386_TLS_DTPMOD32, *this);
443 helper_DynRel_init(rsym,
448 rsym->setReserved(rsym->reserved() | ReserveRel);
456 if (rsym->reserved() & ReserveGOT)
461 getSymGOTMap().record(*rsym, *got_entry);
464 rsym, *got_entry, 0x0, llvm::ELF::R_386_TLS_TPOFF, *this);
466 rsym->setReserved(rsym->reserved() | ReserveGOT);
468 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
474 if (rsym->reserved() & ReserveGOT)
478 getSymGOTMap().record(*rsym, *got_entry);
481 rsym, *got_entry, 0x0, llvm::ELF::R_386_TLS_TPOFF, *this);
483 rsym->setReserved(rsym->reserved() | ReserveGOT);
484 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
493 helper_DynRel_init(rsym,
498 rsym->setReserved(rsym->reserved() | ReserveRel);
500 // the target symbol of the dynamic relocation is rsym, so we need to
502 assert(rsym->outSymbol() != NULL);
503 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
518 // rsym - The relocation target symbol
519 ResolveInfo* rsym = pReloc.symInfo();
527 if (getTarget().symbolNeedsPLT(*rsym)) {
529 if (!(rsym->reserved() & ReservePLT)) {
535 rsym->setReserved(rsym->reserved() | ReservePLT);
541 *rsym, (rsym->reserved() & ReservePLT), true)) {
543 if (getTarget().symbolNeedsCopyReloc(pReloc, *rsym)) {
545 defineSymbolforCopyReloc(pBuilder, *rsym, getTarget());
549 rsym->setReserved(rsym->reserved() | ReserveRel);
552 helper_use_relative_reloc(*rsym, *this)) {
553 helper_DynRel_init(rsym,
559 helper_DynRel_init(rsym,
579 if (rsym->reserved() & ReservePLT)
583 if (getTarget().symbolFinalValueIsKnown(*rsym))
588 if (rsym->isDefine() && !rsym->isDyn() &&
589 !getTarget().isSymbolPreemptible(*rsym))
597 rsym->setReserved(rsym->reserved() | ReservePLT);
603 if (rsym->reserved() & ReserveGOT)
607 if (!getTarget().symbolFinalValueIsKnown(*rsym))
612 rsym->setReserved(rsym->reserved() | ReserveGOT);
619 if (getTarget().symbolNeedsPLT(*rsym) &&
622 if (!(rsym->reserved() & ReservePLT)) {
628 rsym->setReserved(rsym->reserved() | ReservePLT);
634 *rsym, (rsym->reserved() & ReservePLT), false)) {
636 if (getTarget().symbolNeedsCopyReloc(pReloc, *rsym)) {
638 defineSymbolforCopyReloc(pBuilder, *rsym, getTarget());
642 rsym->setReserved(rsym->reserved() | ReserveRel);
645 helper_use_relative_reloc(*rsym, *this)) {
646 helper_DynRel_init(rsym,
652 helper_DynRel_init(rsym,
664 if (rsym->reserved() & ReserveGOT)
670 getSymGOTMap().record(*rsym, *got_entry1, *got_entry2);
673 // setup dyn rel for got entries against rsym
675 rsym, *got_entry1, 0x0, llvm::ELF::R_386_TLS_DTPMOD32, *this);
677 rsym, *got_entry2, 0x0, llvm::ELF::R_386_TLS_DTPOFF32, *this);
679 // add the rsym to dynamic symbol table
680 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
682 rsym->setReserved(rsym->reserved() | ReserveGOT);
697 helper_DynRel_init(rsym,
702 rsym->setReserved(rsym->reserved() | ReserveRel);
706 if (getTarget().symbolFinalValueIsKnown(*rsym)) {
711 if (rsym->reserved() & ReserveGOT)
715 getSymGOTMap().record(*rsym, *got_entry);
718 rsym, *got_entry, 0x0, llvm::ELF::R_386_TLS_TPOFF, *this);
720 rsym->setReserved(rsym->reserved() | ReserveGOT);
726 if (rsym->reserved() & ReserveGOT)
730 getSymGOTMap().record(*rsym, *got_entry);
733 rsym, *got_entry, 0x0, llvm::ELF::R_386_TLS_TPOFF, *this);
734 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
736 rsym->setReserved(rsym->reserved() | ReserveGOT);
745 helper_DynRel_init(rsym,
750 getTarget().getRelDyn().addSymbolToDynSym(*rsym->outSymbol());
751 rsym->setReserved(rsym->reserved() | ReserveRel);
863 ResolveInfo* rsym = pReloc.symInfo();
867 *rsym, (rsym->reserved() & X86Relocator::ReservePLT), true);
878 if (!rsym->isLocal()) {
879 if (rsym->reserved() & X86Relocator::ReservePLT) {
880 S = helper_get_PLT_address(*rsym, pParent);
887 (!helper_use_relative_reloc(*rsym, pParent)))
900 ResolveInfo* rsym = pReloc.symInfo();
905 *rsym, (rsym->reserved() & X86Relocator::ReservePLT), true);
917 if (!rsym->isLocal()) {
918 if (rsym->reserved() & X86Relocator::ReservePLT) {
919 S = helper_get_PLT_address(*rsym, pParent);
923 if (!helper_use_relative_reloc(*rsym, pParent))
953 ResolveInfo* rsym = pReloc.symInfo();
954 if (!(rsym->reserved() & (X86Relocator::ReserveGOT)))
989 ResolveInfo* rsym = pReloc.symInfo();
991 if (!(rsym->reserved() & X86Relocator::ReserveGOT))
996 // get first got entry, if there is already a got entry for rsym, then apply
999 X86_32GOTEntry* got_entry1 = pParent.getSymGOTMap().lookUpFirstEntry(*rsym);
1002 if (rsym->isLocal())
1003 pParent.getSymGOTMap().lookUpSecondEntry(*rsym)->setValue(
1043 ResolveInfo* rsym = pReloc.symInfo();
1044 if (!(rsym->reserved() & X86Relocator::ReserveGOT)) {
1049 X86_32GOTEntry* got_entry = pParent.getSymGOTMap().lookUp(*rsym);
1063 ResolveInfo* rsym = pReloc.symInfo();
1064 if (!(rsym->reserved() & X86Relocator::ReserveGOT)) {
1069 X86_32GOTEntry* got_entry = pParent.getSymGOTMap().lookUp(*rsym);
1138 // rsym - The relocation target symbol
1139 ResolveInfo* rsym = pReloc.symInfo();
1141 assert(pParent.getSymGOTMap().lookUp(*rsym) == NULL);
1144 pParent.getSymGOTMap().record(*rsym, *got_entry);
1152 if (helper_use_relative_reloc(*rsym, pParent)) {
1154 rsym, *got_entry, 0x0, llvm::ELF::R_X86_64_RELATIVE, pParent);
1159 rsym, *got_entry, 0x0, llvm::ELF::R_X86_64_GLOB_DAT, pParent);
1186 // rsym - The relocation target symbol
1187 ResolveInfo* rsym = pReloc.symInfo();
1189 assert(pParent.getSymPLTMap().lookUp(*rsym) == NULL);
1192 pParent.getSymPLTMap().record(*rsym, *plt_entry);
1195 assert(pParent.getSymGOTPLTMap().lookUp(*rsym) == NULL &&
1198 pParent.getSymGOTPLTMap().record(*rsym, *gotplt_entry);
1204 rel_entry.setSymInfo(rsym);
1293 // rsym - The relocation target symbol
1294 ResolveInfo* rsym = pReloc.symInfo();
1302 Relocation& reloc = helper_DynRel_init(rsym,
1309 rsym->setReserved(rsym->reserved() | ReserveRel);
1322 Relocation& reloc = helper_DynRel_init(rsym,
1329 rsym->setReserved(rsym->reserved() | ReserveRel);
1342 if (rsym->reserved() & ReserveGOT)
1351 rsym->setReserved(rsym->reserved() | ReserveGOT);
1365 // rsym - The relocation target symbol
1366 ResolveInfo* rsym = pReloc.symInfo();
1376 if (getTarget().symbolNeedsPLT(*rsym)) {
1378 if (!(rsym->reserved() & ReservePLT)) {
1384 rsym->setReserved(rsym->reserved() | ReservePLT);
1390 *rsym, (rsym->reserved() & ReservePLT), true)) {
1392 if (getTarget().symbolNeedsCopyReloc(pReloc, *rsym)) {
1394 defineSymbolforCopyReloc(pBuilder, *rsym, getTarget());
1398 rsym->setReserved(rsym->reserved() | ReserveRel);
1401 helper_use_relative_reloc(*rsym, *this)) {
1402 Relocation& reloc = helper_DynRel_init(rsym,
1409 Relocation& reloc = helper_DynRel_init(rsym,
1424 if (rsym->reserved() & ReserveGOT)
1429 if (!getTarget().symbolFinalValueIsKnown(*rsym))
1434 rsym->setReserved(rsym->reserved() | ReserveGOT);
1441 if (rsym->reserved() & ReservePLT)
1445 if (getTarget().symbolFinalValueIsKnown(*rsym))
1450 if (rsym->isDefine() && !rsym->isDyn() &&
1451 !getTarget().isSymbolPreemptible(*rsym)) {
1460 rsym->setReserved(rsym->reserved() | ReservePLT);
1466 if (getTarget().symbolNeedsPLT(*rsym) &&
1469 if (!(rsym->reserved() & ReservePLT)) {
1475 rsym->setReserved(rsym->reserved() | ReservePLT);
1484 if (getTarget().isDynamicSymbol(*rsym) &&
1487 *rsym, (rsym->reserved() & ReservePLT), false) &&
1488 getTarget().symbolNeedsCopyReloc(pReloc, *rsym)) {
1490 defineSymbolforCopyReloc(pBuilder, *rsym, getTarget());
1532 ResolveInfo* rsym = pReloc.symInfo();
1547 if (rsym->isLocal() && has_dyn_rel) {
1553 if (!rsym->isLocal()) {
1554 if (rsym->reserved() & X86Relocator::ReservePLT) {
1555 S = helper_get_PLT_address(*rsym, pParent);
1562 helper_use_relative_reloc(*rsym, pParent)) {
1578 ResolveInfo* rsym = pReloc.symInfo();
1590 if ((llvm::ELF::SHF_ALLOC & target_sect.flag()) != 0x0 && !rsym->isLocal() &&
1591 rsym->reserved() & X86Relocator::ReservePLT)
1592 S = helper_get_PLT_address(*rsym, pParent);
1649 ResolveInfo* rsym = pReloc.symInfo();
1669 if (!rsym->isLocal()) {
1670 if (rsym->reserved() & X86Relocator::ReservePLT) {
1671 S = helper_get_PLT_address(*rsym, pParent);
1675 *rsym, (rsym->reserved() & X86Relocator::ReservePLT), false)) {