Lines Matching defs:Writer
1 //===-- X86MachObjectWriter.cpp - X86 Mach-O Writer -----------------------===//
27 bool recordScatteredRelocation(MachObjectWriter *Writer,
34 void recordTLVPRelocation(MachObjectWriter *Writer,
41 void RecordX86Relocation(MachObjectWriter *Writer,
47 void RecordX86_64Relocation(MachObjectWriter *Writer, MCAssembler &Asm,
55 void recordRelocation(MachObjectWriter *Writer, MCAssembler &Asm,
58 if (Writer->is64Bit())
59 RecordX86_64Relocation(Writer, Asm, Fragment, Fixup, Target, FixedValue);
61 RecordX86Relocation(Writer, Asm, Fragment, Fixup, Target, FixedValue);
102 MachObjectWriter *Writer, MCAssembler &Asm, const MCFragment *Fragment,
104 unsigned IsPCRel = Writer->isFixupKindPCRel(Asm, Fixup.getKind());
111 Writer->getFragmentAddress(Asm, Fragment) + Fixup.getOffset();
144 A = &Writer->findAliasedSymbol(*A);
145 const MCSymbol *A_Base = Writer->getAtom(*A);
149 B = &Writer->findAliasedSymbol(*B);
150 const MCSymbol *B_Base = Writer->getAtom(*B);
193 Value += Writer->getSymbolAddress(*A, Asm) -
194 (!A_Base ? 0 : Writer->getSymbolAddress(*A_Base, Asm));
195 Value -= Writer->getSymbolAddress(*B, Asm) -
196 (!B_Base ? 0 : Writer->getSymbolAddress(*B_Base, Asm));
206 Writer->addRelocation(A_Base, Fragment->getParent(), MRE);
220 RelSymbol = Writer->getAtom(*Symbol);
243 Value += Writer->getSymbolAddress(*Symbol, Asm);
251 Value->evaluateAsAbsolute(Res, Asm, Writer->getSectionAddressMap());
356 Writer->addRelocation(RelSymbol, Fragment->getParent(), MRE);
359 bool X86MachObjectWriter::recordScatteredRelocation(MachObjectWriter *Writer,
368 unsigned IsPCRel = Writer->isFixupKindPCRel(Asm, Fixup.getKind());
382 uint32_t Value = Writer->getSymbolAddress(*A, Asm);
383 uint64_t SecAddr = Writer->getSectionAddress(A->getFragment()->getParent());
405 Value2 = Writer->getSymbolAddress(*SB, Asm);
406 FixedValue -= Writer->getSectionAddress(SB->getFragment()->getParent());
432 Writer->addRelocation(nullptr, Fragment->getParent(), MRE);
454 Writer->addRelocation(nullptr, Fragment->getParent(), MRE);
458 void X86MachObjectWriter::recordTLVPRelocation(MachObjectWriter *Writer,
479 Writer->getFragmentAddress(Asm, Fragment) + Fixup.getOffset();
482 Writer->getSymbolAddress(SymB->getSymbol(), Asm) +
494 Writer->addRelocation(&SymA->getSymbol(), Fragment->getParent(), MRE);
497 void X86MachObjectWriter::RecordX86Relocation(MachObjectWriter *Writer,
503 unsigned IsPCRel = Writer->isFixupKindPCRel(Asm, Fixup.getKind());
509 recordTLVPRelocation(Writer, Asm, Fragment, Fixup, Target, FixedValue);
517 recordScatteredRelocation(Writer, Asm, Fragment, Fixup, Target, Log2Size,
536 if (Offset && A && !Writer->doesSymbolRequireExternRelocation(*A) &&
537 recordScatteredRelocation(Writer, Asm, Fragment, Fixup, Target, Log2Size,
560 Res, Asm, Writer->getSectionAddressMap())) {
567 if (Writer->doesSymbolRequireExternRelocation(*A)) {
578 FixedValue += Writer->getSectionAddress(&Sec);
581 FixedValue -= Writer->getSectionAddress(Fragment->getParent());
591 Writer->addRelocation(RelSymbol, Fragment->getParent(), MRE);