Lines Matching full:coff
1 //===- COFFObjectFile.cpp - COFF object file implementation -----*- C++ -*-===//
14 #include "llvm/Object/COFF.h"
19 #include "llvm/Support/COFF.h"
166 COFF::isReservedSectionNumber(SectionNumber))
185 if (Symb.getComplexType() == COFF::IMAGE_SYM_DTYPE_FUNCTION)
195 if (SectionNumber == COFF::IMAGE_SYM_DEBUG || Symb.isSectionDefinition())
198 if (!COFF::isReservedSectionNumber(SectionNumber))
214 if (Symb.getSectionNumber() == COFF::IMAGE_SYM_ABSOLUTE)
240 if (COFF::isReservedSectionNumber(Symb.getSectionNumber()))
301 return Sec->Characteristics & COFF::IMAGE_SCN_CNT_CODE;
306 return Sec->Characteristics & COFF::IMAGE_SCN_CNT_INITIALIZED_DATA;
311 const uint32_t BssFlags = COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA |
312 COFF::IMAGE_SCN_MEM_READ |
313 COFF::IMAGE_SCN_MEM_WRITE;
326 // In COFF, a virtual section won't have any in-file
333 // The field for the number of relocations in COFF section table is only
511 if (D.Type == COFF::IMAGE_DEBUG_TYPE_CODEVIEW)
524 if (getDataDirectory(COFF::IMPORT_TABLE, DataEntry))
548 if (getDataDirectory(COFF::DELAY_IMPORT_DESCRIPTOR, DataEntry))
570 if (getDataDirectory(COFF::EXPORT_TABLE, DataEntry))
588 if (getDataDirectory(COFF::BASE_RELOCATION_TABLE, DataEntry))
606 if (getDataDirectory(COFF::DEBUG_DIRECTORY, DataEntry))
645 // it is placed right after COFF header.
648 // Check if this is a PE/COFF file.
649 if (checkSize(Data, EC, sizeof(dos_header) + sizeof(COFF::PEMagic))) {
650 // PE/COFF, seek through MS-DOS compatibility stub and 4-byte
651 // PE signature to find 'normal' COFF header.
656 if (memcmp(base() + CurPtr, COFF::PEMagic, sizeof(COFF::PEMagic)) != 0) {
660 CurPtr += sizeof(COFF::PEMagic); // Skip the PE magic bytes.
668 // It might be a bigobj file, let's check. Note that COFF bigobj and COFF
670 if (!HasPEHeader && COFFHeader->Machine == COFF::IMAGE_FILE_MACHINE_UNKNOWN &&
677 if (COFFBigObjHeader->Version >= COFF::BigObjHeader::MinBigObjectVersion &&
678 std::memcmp(COFFBigObjHeader->UUID, COFF::BigObjMagic,
679 sizeof(COFF::BigObjMagic)) == 0) {
704 if (Header->Magic == COFF::PE32Header::PE32) {
708 } else if (Header->Magic == COFF::PE32Header::PE32_PLUS) {
840 case COFF::IMAGE_FILE_MACHINE_I386:
841 return "COFF-i386";
842 case COFF::IMAGE_FILE_MACHINE_AMD64:
843 return "COFF-x86-64";
844 case COFF::IMAGE_FILE_MACHINE_ARMNT:
845 return "COFF-ARM";
846 case COFF::IMAGE_FILE_MACHINE_ARM64:
847 return "COFF-ARM64";
849 return "COFF-<unknown arch>";
855 case COFF::IMAGE_FILE_MACHINE_I386:
857 case COFF::IMAGE_FILE_MACHINE_AMD64:
859 case COFF::IMAGE_FILE_MACHINE_ARMNT:
861 case COFF::IMAGE_FILE_MACHINE_ARM64:
921 if (COFF::isReservedSectionNumber(Index))
956 if (Symbol->Name.ShortName[COFF::NameSize - 1] == 0)
961 Res = StringRef(Symbol->Name.ShortName, COFF::NameSize);
971 // AUX data comes immediately after the symbol in COFF
991 if (Sec->Name[COFF::NameSize - 1] == 0)
996 Name = StringRef(Sec->Name, COFF::NameSize);
1021 // VirtualSize should be zero but isn't due to buggy COFF writers.
1035 // In COFF, a virtual section won't have any in-file
1115 case COFF::reloc_type: \
1124 case COFF::IMAGE_FILE_MACHINE_AMD64:
1147 case COFF::IMAGE_FILE_MACHINE_ARMNT:
1168 case COFF::IMAGE_FILE_MACHINE_I386:
1419 if (auto EC = OwningObject->getDataDirectory(COFF::EXPORT_TABLE, DataEntry))