Home | History | Annotate | Download | only in MC

Lines Matching refs:Section

171                          sizeof(MachO::section)));
202 const MCSectionMachO &Section = cast<MCSectionMachO>(Sec);
205 if (Section.isVirtualSection()) {
210 // struct section (68 bytes) or
216 writeBytes(Section.getSectionName(), 16);
217 writeBytes(Section.getSegmentName(), 16);
227 assert(isPowerOf2_32(Section.getAlignment()) && "Invalid alignment!");
228 write32(Log2_32(Section.getAlignment()));
233 write32(Section.getStubSize()); // reserved2
238 (is64Bit() ? sizeof(MachO::section_64) : sizeof(MachO::section)));
450 // Report errors for use of .indirect_symbol not in a symbol pointer section
451 // or stub section.
454 const MCSectionMachO &Section = cast<MCSectionMachO>(*it->Section);
456 if (Section.getType() != MachO::S_NON_LAZY_SYMBOL_POINTERS &&
457 Section.getType() != MachO::S_LAZY_SYMBOL_POINTERS &&
458 Section.getType() != MachO::S_SYMBOL_STUBS) {
461 "' not in a symbol pointer or stub section");
469 const MCSectionMachO &Section = cast<MCSectionMachO>(*it->Section);
471 if (Section.getType() != MachO::S_NON_LAZY_SYMBOL_POINTERS)
474 // Initialize the section indirect symbol base, if necessary.
475 IndirectSymBase.insert(std::make_pair(it->Section, IndirectIndex));
484 const MCSectionMachO &Section = cast<MCSectionMachO>(*it->Section);
486 if (Section.getType() != MachO::S_LAZY_SYMBOL_POINTERS &&
487 Section.getType() != MachO::S_SYMBOL_STUBS)
490 // Initialize the section indirect symbol base, if necessary.
491 IndirectSymBase.insert(std::make_pair(it->Section, IndirectIndex));
508 // Build section lookup table.
550 assert(MSD.SectionIndex && "Invalid section index!");
573 assert(MSD.SectionIndex && "Invalid section index!");
589 for (const MCSection &Section : Asm) {
590 for (RelAndSymbol &Rel : Relocations[&Section]) {
613 // Explicitly pad the section to match the alignment requirements of the
659 // relocation to a temporary symbol (in the same section) is fully
689 // If they are not in the same section, we can't compute the diff.
717 // The section data starts after the header, the segment load command (and
718 // section headers) and the symbol table.
722 sizeof(MachO::segment_command) + NumSections * sizeof(MachO::section);
760 // Compute the total size of the section data, as well as its file size and vm
782 // The section data is padded to 4 bytes.
796 // ... and then the section headers.
798 for (const MCSection &Section : Asm) {
799 const auto &Sec = cast<MCSectionMachO>(Section);
868 // If used, the indirect symbols are written after the section data.
893 // Write the actual section data.
906 // Write the section relocation entries, in reverse order to match 'as'
949 // Indirect symbols in the non-lazy symbol pointer section have some
951 const MCSectionMachO &Section =
952 static_cast<const MCSectionMachO &>(*it->Section);
953 if (Section.getType() == MachO::S_NON_LAZY_SYMBOL_POINTERS) {