Lines Matching refs:pReloc

28 typedef Relocator::Result (*ApplyFunctionType)(Relocation& pReloc,
100 void HexagonRelocator::scanRelocation(Relocation& pReloc,
108 pReloc.updateAddend();
110 ResolveInfo* rsym = pReloc.symInfo();
119 scanLocalReloc(pReloc, pLinker, pModule, pSection);
121 scanGlobalReloc(pReloc, pLinker, pModule, pSection);
139 void HexagonRelocator::scanLocalReloc(Relocation& pReloc,
145 ResolveInfo* rsym = pReloc.symInfo();
147 switch(pReloc.type()){
168 void HexagonRelocator::scanGlobalReloc(Relocation& pReloc,
174 ResolveInfo* rsym = pReloc.symInfo();
176 switch(pReloc.type()) {
304 void HexagonRelocator::partialScanRelocation(Relocation& pReloc,
308 pReloc.updateAddend();
310 if (pReloc.symInfo()->type() == ResolveInfo::Section) {
311 LDSymbol* input_sym = pReloc.symInfo()->outSymbol();
321 pReloc.setSymInfo(sym_info);
362 HexagonGOTEntry& helper_get_GOT_and_init(Relocation& pReloc,
366 ResolveInfo* rsym = pReloc.symInfo();
380 got_entry->setValue(pReloc.symValue());
386 got_entry->setValue(pReloc.symValue());
406 HexagonRelocator::Address helper_GOT(Relocation& pReloc, HexagonRelocator& pParent)
408 HexagonGOTEntry& got_entry = helper_get_GOT_and_init(pReloc, pParent);
413 PLTEntryBase& helper_get_PLT_and_init(Relocation& pReloc,
417 ResolveInfo* rsym = pReloc.symInfo();
453 HexagonRelocator::Address helper_PLT(Relocation& pReloc,
456 PLTEntryBase& plt_entry = helper_get_PLT_and_init(pReloc, pParent);
465 HexagonRelocator::Result none(Relocation& pReloc, HexagonRelocator& pParent)
471 HexagonRelocator::Result relocB15PCREL(Relocation& pReloc,
474 HexagonRelocator::Address S = pReloc.symValue();
475 HexagonRelocator::DWord A = pReloc.addend();
476 HexagonRelocator::DWord P = pReloc.place();
481 pReloc.target() = pReloc.target() | ApplyMask<int32_t>(0x00df20fe,result);
488 HexagonRelocator::Result relocB22PCREL(Relocation& pReloc,
491 HexagonRelocator::Address S = pReloc.symValue();
492 HexagonRelocator::DWord A = pReloc.addend();
493 HexagonRelocator::DWord P = pReloc.place();
497 uint32_t bitMask = FINDBITMASK(pReloc.target());
499 pReloc.target() = pReloc.target() | ApplyMask<int32_t>(bitMask, result);
506 HexagonRelocator::Result relocB7PCREL(Relocation& pReloc,
509 HexagonRelocator::Address S = pReloc.symValue();
510 HexagonRelocator::DWord A = pReloc.addend();
511 HexagonRelocator::DWord P = pReloc.place();
516 pReloc.target() = pReloc.target() | ApplyMask<int32_t>(0x00001f18, result);
523 HexagonRelocator::Result reloc32(Relocation& pReloc,
526 HexagonRelocator::DWord A = pReloc.addend();
527 HexagonRelocator::DWord S = pReloc.symValue();
528 ResolveInfo* rsym = pReloc.symInfo();
536 FragmentRef &target_fragref = pReloc.targetRef();
546 pReloc.target() = result | pReloc.target();
551 HexagonRelocator::Result reloc16(Relocation& pReloc,
554 HexagonRelocator::DWord A = pReloc.addend();
555 HexagonRelocator::DWord S = pReloc.symValue();
558 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(0x0000ffff, result);
564 HexagonRelocator::Result reloc8(Relocation& pReloc,
567 HexagonRelocator::DWord A = pReloc.addend();
568 HexagonRelocator::DWord S = pReloc.symValue();
571 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(0x000000ff, result);
577 HexagonRelocator::Result relocLO16(Relocation& pReloc,
580 HexagonRelocator::Address S = pReloc.symValue();
581 HexagonRelocator::DWord A = pReloc.addend();
585 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(0x00c03fff, result);
590 HexagonRelocator::Result relocHI16(Relocation& pReloc,
593 HexagonRelocator::Address S = pReloc.symValue();
594 HexagonRelocator::DWord A = pReloc.addend();
598 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(0x00c03fff, result);
603 HexagonRelocator::Result relocGPREL16_0(Relocation& pReloc,
606 HexagonRelocator::Address S = pReloc.symValue();
607 HexagonRelocator::DWord A = pReloc.addend();
613 uint32_t bitMask = FINDBITMASK(pReloc.target());
615 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
622 HexagonRelocator::Result relocGPREL16_1(Relocation& pReloc,
625 HexagonRelocator::Address S = pReloc.symValue();
626 HexagonRelocator::DWord A = pReloc.addend();
632 uint32_t bitMask = FINDBITMASK(pReloc.target());
634 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
641 HexagonRelocator::Result relocGPREL16_2(Relocation& pReloc,
644 HexagonRelocator::Address S = pReloc.symValue();
645 HexagonRelocator::DWord A = pReloc.addend();
651 uint32_t bitMask = FINDBITMASK(pReloc.target());
653 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
660 HexagonRelocator::Result relocGPREL16_3(Relocation& pReloc,
663 HexagonRelocator::Address S = pReloc.symValue();
664 HexagonRelocator::DWord A = pReloc.addend();
670 uint32_t bitMask = FINDBITMASK(pReloc.target());
672 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
679 HexagonRelocator::Result relocB13PCREL(Relocation& pReloc,
682 HexagonRelocator::Address S = pReloc.symValue();
683 HexagonRelocator::DWord A = pReloc.addend();
684 HexagonRelocator::DWord P = pReloc.place();
689 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(0x00202ffe, result);
696 HexagonRelocator::Result relocB9PCREL(Relocation& pReloc,
699 HexagonRelocator::Address S = pReloc.symValue();
700 HexagonRelocator::DWord A = pReloc.addend();
701 HexagonRelocator::DWord P = pReloc.place();
705 uint32_t bitMask = FINDBITMASK(pReloc.target());
707 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
714 HexagonRelocator::Result relocB32PCRELX(Relocation& pReloc,
717 HexagonRelocator::Address S = pReloc.symValue();
718 HexagonRelocator::DWord A = pReloc.addend();
719 HexagonRelocator::DWord P = pReloc.place();
722 pReloc.target() = pReloc.target() | ApplyMask<int32_t>(0xfff3fff, result);
728 HexagonRelocator::Result reloc32_6_X(Relocation& pReloc,
731 HexagonRelocator::Address S = pReloc.symValue();
732 HexagonRelocator::DWord A = pReloc.addend();
740 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(0xfff3fff, result);
747 HexagonRelocator::Result relocB22PCRELX(Relocation& pReloc,
750 HexagonRelocator::Address S = pReloc.symValue();
751 HexagonRelocator::DWord A = pReloc.addend();
752 HexagonRelocator::DWord P = pReloc.place();
758 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(0x01ff3ffe, result);
767 HexagonRelocator::Result relocB15PCRELX(Relocation& pReloc,
770 HexagonRelocator::Address S = pReloc.symValue();
771 HexagonRelocator::DWord A = pReloc.addend();
772 HexagonRelocator::DWord P = pReloc.place();
778 pReloc.target() = pReloc.target() | ApplyMask<int32_t>(0x00df20fe, result);
787 HexagonRelocator::Result relocB13PCRELX(Relocation& pReloc,
790 HexagonRelocator::Address S = pReloc.symValue();
791 HexagonRelocator::DWord A = pReloc.addend();
792 HexagonRelocator::DWord P = pReloc.place();
798 pReloc.target() = pReloc.target() | ApplyMask<int32_t>(0x00202ffe, result);
807 HexagonRelocator::Result relocB9PCRELX(Relocation& pReloc,
810 HexagonRelocator::Address S = pReloc.symValue();
811 HexagonRelocator::DWord A = pReloc.addend();
812 HexagonRelocator::DWord P = pReloc.place();
817 uint32_t bitMask = FINDBITMASK(pReloc.target());
819 pReloc.target() = pReloc.target() | ApplyMask<int32_t>(bitMask, result);
828 HexagonRelocator::Result relocB7PCRELX(Relocation& pReloc,
831 HexagonRelocator::Address S = pReloc.symValue();
832 HexagonRelocator::DWord A = pReloc.addend();
833 HexagonRelocator::DWord P = pReloc.place();
839 pReloc.target() = pReloc.target() | ApplyMask<int32_t>(0x00001f18, result);
847 HexagonRelocator::Result reloc32PCREL(Relocation& pReloc,
850 HexagonRelocator::Address S = pReloc.symValue();
851 HexagonRelocator::DWord A = pReloc.addend();
852 HexagonRelocator::DWord P = pReloc.place();
858 pReloc.target() = pReloc.target() | ApplyMask<int32_t>(0xffffffff, result);
866 HexagonRelocator::Result relocHexNX(Relocation& pReloc,
869 HexagonRelocator::Address S = pReloc.symValue();
870 HexagonRelocator::DWord A = pReloc.addend();
872 uint32_t bitMask = FINDBITMASK(pReloc.target());
874 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
879 HexagonRelocator::Result relocPLTB22PCREL(Relocation& pReloc, HexagonRelocator& pParent)
883 if ((pReloc.symInfo()->reserved() & HexagonRelocator::ReservePLT))
884 PLT_S = helper_PLT(pReloc, pParent);
886 PLT_S = pReloc.symValue();
887 HexagonRelocator::Address P = pReloc.place();
888 uint32_t bitMask = FINDBITMASK(pReloc.target());
889 uint32_t result = (PLT_S + pReloc.addend() - P) >> 2;
890 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
895 HexagonRelocator::Result relocHexGOTRELLO16(Relocation& pReloc,
898 HexagonRelocator::Address S = pReloc.symValue();
899 HexagonRelocator::DWord A = pReloc.addend();
903 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(0x00c03fff, result);
908 HexagonRelocator::Result relocHexGOTRELHI16(Relocation& pReloc,
911 HexagonRelocator::Address S = pReloc.symValue();
912 HexagonRelocator::DWord A = pReloc.addend();
917 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(0x00c03fff, result);
922 HexagonRelocator::Result relocHexGOTREL32(Relocation& pReloc,
925 HexagonRelocator::Address S = pReloc.symValue();
926 HexagonRelocator::DWord A = pReloc.addend();
931 pReloc.target() = pReloc.target() | result;
936 HexagonRelocator::Result relocHex6PCRELX(Relocation& pReloc,
939 HexagonRelocator::Address S = pReloc.symValue();
940 HexagonRelocator::DWord A = pReloc.addend();
941 HexagonRelocator::DWord P = pReloc.place();
944 uint32_t bitMask = FINDBITMASK(pReloc.target());
946 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
951 HexagonRelocator::Result relocHexGOT326X(Relocation& pReloc,
954 if (!(pReloc.symInfo()->reserved()
958 HexagonRelocator::Address GOT_S = helper_GOT(pReloc, pParent);
961 uint32_t bitMask = FINDBITMASK(pReloc.target());
962 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
968 HexagonRelocator::Result relocHexGOT1611X(Relocation& pReloc,
971 if (!(pReloc.symInfo()->reserved()
975 HexagonRelocator::Address GOT_S = helper_GOT(pReloc, pParent);
978 uint32_t bitMask = FINDBITMASK(pReloc.target());
979 pReloc.target() = pReloc.target() | ApplyMask<uint32_t>(bitMask, result);
983 HexagonRelocator::Result unsupport(Relocation& pReloc,