Lines Matching full:coff
1 //===- yaml2coff - Convert YAML to a COFF object file ---------------------===//
11 /// \brief The COFF component of yaml2obj.
20 #include "llvm/Object/COFF.h"
30 /// This parses a yaml stream that represents a COFF object file.
35 // A COFF string table always starts with a 4 byte size field. Offsets into
42 COFF::MaxNumberOfSections16;
47 return Obj.Header.Machine == COFF::IMAGE_FILE_MACHINE_AMD64;
55 return useBigObj() ? COFF::Header32Size : COFF::Header16Size;
59 return useBigObj() ? COFF::Symbol32Size : COFF::Symbol16Size;
71 if (Name.size() <= COFF::NameSize) {
108 if (Name.size() <= COFF::NameSize) {
118 Sym.Header.Type |= Sym.ComplexType << COFF::SCT_COMPLEX_TYPE_SHIFT;
160 sizeof(object::data_directory) * (COFF::NUM_DATA_DIRECTORIES + 1);
176 CP.SectionTableStart += DOSStubSize + sizeof(COFF::PEMagic);
177 CP.SectionTableSize = COFF::SectionSize * CP.Obj.Sections.size();
197 S.Header.NumberOfRelocations * COFF::RelocationSize;
309 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_CODE)
311 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_INITIALIZED_DATA)
313 if (S.Header.Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)
348 Header->NumberOfRvaAndSize = COFF::NUM_DATA_DIRECTORIES + 1;
374 OS.write(COFF::PEMagic, sizeof(COFF::PEMagic));
377 OS << binary_le(static_cast<uint16_t>(COFF::IMAGE_FILE_MACHINE_UNKNOWN))
379 << binary_le(static_cast<uint16_t>(COFF::BigObjHeader::MinBigObjectVersion))
382 OS.write(COFF::BigObjMagic, sizeof(COFF::BigObjMagic));
402 initializeOptionalHeader(CP, COFF::PE32Header::PE32_PLUS, &PEH);
406 uint32_t BaseOfData = initializeOptionalHeader(CP, COFF::PE32Header::PE32, &PEH);
410 for (const Optional<COFF::DataDirectory> &DD :
429 OS.write(i->Header.Name, COFF::NameSize);
473 OS.write(i->Header.Name, COFF::NameSize);
489 << num_zeros(CP.getSymbolSize() - COFF::Symbol16Size);
496 << num_zeros(CP.getSymbolSize() - COFF::Symbol16Size);
501 << num_zeros(CP.getSymbolSize() - COFF::Symbol16Size);
520 << num_zeros(CP.getSymbolSize() - COFF::Symbol16Size);
526 << num_zeros(CP.getSymbolSize() - COFF::Symbol16Size);
543 errs() << "yaml2obj: Failed to layout optional header for COFF file!\n";
547 errs() << "yaml2obj: Failed to layout COFF file!\n";
551 errs() << "yaml2obj: Failed to write COFF file!\n";