Movatterモバイル変換


[0]ホーム

URL:


LLVM 20.0.0git
XCOFFObjectFile.h
Go to the documentation of this file.
1//===- XCOFFObjectFile.h - XCOFF object file implementation -----*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file declares the XCOFFObjectFile class.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_OBJECT_XCOFFOBJECTFILE_H
14#define LLVM_OBJECT_XCOFFOBJECTFILE_H
15
16#include "llvm/ADT/SmallString.h"
17#include "llvm/ADT/SmallVector.h"
18#include "llvm/ADT/iterator_range.h"
19#include "llvm/BinaryFormat/XCOFF.h"
20#include "llvm/Object/ObjectFile.h"
21#include "llvm/Support/Compiler.h"
22#include "llvm/Support/Endian.h"
23#include <limits>
24
25namespacellvm {
26namespaceobject {
27
28classxcoff_symbol_iterator;
29
30structXCOFFFileHeader32 {
31support::ubig16_tMagic;
32support::ubig16_tNumberOfSections;
33
34// Unix time value, value of 0 indicates no timestamp.
35// Negative values are reserved.
36support::big32_tTimeStamp;
37
38support::ubig32_tSymbolTableOffset;// File offset to symbol table.
39support::big32_tNumberOfSymTableEntries;
40support::ubig16_tAuxHeaderSize;
41support::ubig16_tFlags;
42};
43
44structXCOFFFileHeader64 {
45support::ubig16_tMagic;
46support::ubig16_tNumberOfSections;
47
48// Unix time value, value of 0 indicates no timestamp.
49// Negative values are reserved.
50support::big32_tTimeStamp;
51
52support::ubig64_tSymbolTableOffset;// File offset to symbol table.
53support::ubig16_tAuxHeaderSize;
54support::ubig16_tFlags;
55support::ubig32_tNumberOfSymTableEntries;
56};
57
58template <typename T>structXCOFFAuxiliaryHeader {
59staticconstexpruint8_tAuxiHeaderFlagMask = 0xF0;
60staticconstexpruint8_tAuxiHeaderTDataAlignmentMask = 0x0F;
61
62public:
63uint8_tgetFlag() const{
64returnstatic_cast<constT *>(this)->FlagAndTDataAlignment &
65AuxiHeaderFlagMask;
66 }
67
68uint8_tgetTDataAlignment() const{
69returnstatic_cast<constT *>(this)->FlagAndTDataAlignment &
70AuxiHeaderTDataAlignmentMask;
71 }
72
73uint16_tgetVersion() const{returnstatic_cast<constT *>(this)->Version; }
74uint64_tgetEntryPointAddr() const{
75returnstatic_cast<constT *>(this)->EntryPointAddr;
76 }
77};
78
79structXCOFFAuxiliaryHeader32 :XCOFFAuxiliaryHeader<XCOFFAuxiliaryHeader32> {
80support::ubig16_t
81AuxMagic;///< If the value of the o_vstamp field is greater than 1, the
82 ///< o_mflags field is reserved for future use and it should
83 ///< contain 0. Otherwise, this field is not used.
84support::ubig16_t
85Version;///< The valid values are 1 and 2. When the o_vstamp field is 2
86 ///< in an XCOFF32 file, the new interpretation of the n_type
87 ///< field in the symbol table entry is used.
88support::ubig32_tTextSize;
89support::ubig32_tInitDataSize;
90support::ubig32_tBssDataSize;
91support::ubig32_tEntryPointAddr;
92support::ubig32_tTextStartAddr;
93support::ubig32_tDataStartAddr;
94support::ubig32_tTOCAnchorAddr;
95support::ubig16_tSecNumOfEntryPoint;
96support::ubig16_tSecNumOfText;
97support::ubig16_tSecNumOfData;
98support::ubig16_tSecNumOfTOC;
99support::ubig16_tSecNumOfLoader;
100support::ubig16_tSecNumOfBSS;
101support::ubig16_tMaxAlignOfText;
102support::ubig16_tMaxAlignOfData;
103support::ubig16_tModuleType;
104uint8_tCpuFlag;
105uint8_tCpuType;
106support::ubig32_tMaxStackSize;///< If the value is 0, the system default
107 ///< maximum stack size is used.
108support::ubig32_tMaxDataSize;///< If the value is 0, the system default
109 ///< maximum data size is used.
110support::ubig32_t
111ReservedForDebugger;///< This field should contain 0. When a loaded
112 ///< program is being debugged, the memory image of
113 ///< this field may be modified by a debugger to
114 ///< insert a trap instruction.
115uint8_tTextPageSize;///< Specifies the size of pages for the exec text. The
116 ///< default value is 0 (system-selected page size).
117uint8_tDataPageSize;///< Specifies the size of pages for the exec data. The
118 ///< default value is 0 (system-selected page size).
119uint8_tStackPageSize;///< Specifies the size of pages for the stack. The
120 ///< default value is 0 (system-selected page size).
121uint8_tFlagAndTDataAlignment;
122support::ubig16_tSecNumOfTData;
123support::ubig16_tSecNumOfTBSS;
124};
125
126structXCOFFAuxiliaryHeader64 :XCOFFAuxiliaryHeader<XCOFFAuxiliaryHeader64> {
127support::ubig16_tAuxMagic;
128support::ubig16_tVersion;
129support::ubig32_tReservedForDebugger;
130support::ubig64_tTextStartAddr;
131support::ubig64_tDataStartAddr;
132support::ubig64_tTOCAnchorAddr;
133support::ubig16_tSecNumOfEntryPoint;
134support::ubig16_tSecNumOfText;
135support::ubig16_tSecNumOfData;
136support::ubig16_tSecNumOfTOC;
137support::ubig16_tSecNumOfLoader;
138support::ubig16_tSecNumOfBSS;
139support::ubig16_tMaxAlignOfText;
140support::ubig16_tMaxAlignOfData;
141support::ubig16_tModuleType;
142uint8_tCpuFlag;
143uint8_tCpuType;
144uint8_tTextPageSize;
145uint8_tDataPageSize;
146uint8_tStackPageSize;
147uint8_tFlagAndTDataAlignment;
148support::ubig64_tTextSize;
149support::ubig64_tInitDataSize;
150support::ubig64_tBssDataSize;
151support::ubig64_tEntryPointAddr;
152support::ubig64_tMaxStackSize;
153support::ubig64_tMaxDataSize;
154support::ubig16_tSecNumOfTData;
155support::ubig16_tSecNumOfTBSS;
156support::ubig16_tXCOFF64Flag;
157};
158
159template <typename T>structXCOFFSectionHeader {
160// The section flags definitions are the same in both 32- and 64-bit objects.
161// Least significant 3 bits are reserved.
162staticconstexprunsignedSectionFlagsReservedMask = 0x7;
163
164// The low order 16 bits of section flags denotes the section type.
165// The high order 16 bits of section flags denotes the section subtype.
166// For now, this is only used for DWARF sections.
167staticconstexprunsignedSectionFlagsTypeMask = 0xffffu;
168
169public:
170StringRefgetName()const;
171uint16_tgetSectionType()const;
172uint32_tgetSectionSubtype()const;
173boolisReservedSectionType()const;
174};
175
176// Explicit extern template declarations.
177structXCOFFSectionHeader32;
178structXCOFFSectionHeader64;
179externtemplatestructXCOFFSectionHeader<XCOFFSectionHeader32>;
180externtemplatestructXCOFFSectionHeader<XCOFFSectionHeader64>;
181
182structXCOFFSectionHeader32 :XCOFFSectionHeader<XCOFFSectionHeader32> {
183charName[XCOFF::NameSize];
184support::ubig32_tPhysicalAddress;
185support::ubig32_tVirtualAddress;
186support::ubig32_tSectionSize;
187support::ubig32_tFileOffsetToRawData;
188support::ubig32_tFileOffsetToRelocationInfo;
189support::ubig32_tFileOffsetToLineNumberInfo;
190support::ubig16_tNumberOfRelocations;
191support::ubig16_tNumberOfLineNumbers;
192support::big32_tFlags;
193};
194
195structXCOFFSectionHeader64 :XCOFFSectionHeader<XCOFFSectionHeader64> {
196charName[XCOFF::NameSize];
197support::ubig64_tPhysicalAddress;
198support::ubig64_tVirtualAddress;
199support::ubig64_tSectionSize;
200support::big64_tFileOffsetToRawData;
201support::big64_tFileOffsetToRelocationInfo;
202support::big64_tFileOffsetToLineNumberInfo;
203support::ubig32_tNumberOfRelocations;
204support::ubig32_tNumberOfLineNumbers;
205support::big32_tFlags;
206char Padding[4];
207};
208
209structLoaderSectionHeader32;
210structLoaderSectionHeader64;
211structLoaderSectionSymbolEntry32 {
212structNameOffsetInStrTbl {
213support::big32_tIsNameInStrTbl;// Zero indicates name in string table.
214support::ubig32_tOffset;
215 };
216
217char SymbolName[XCOFF::NameSize];
218support::ubig32_tValue;// The virtual address of the symbol.
219support::big16_tSectionNumber;
220uint8_tSymbolType;
221XCOFF::StorageClassStorageClass;
222support::ubig32_tImportFileID;
223support::ubig32_tParameterTypeCheck;
224
225Expected<StringRef>
226getSymbolName(constLoaderSectionHeader32 *LoaderSecHeader)const;
227};
228
229structLoaderSectionSymbolEntry64 {
230support::ubig64_tValue;// The virtual address of the symbol.
231support::ubig32_tOffset;
232support::big16_tSectionNumber;
233uint8_tSymbolType;
234XCOFF::StorageClassStorageClass;
235support::ubig32_tImportFileID;
236support::ubig32_tParameterTypeCheck;
237
238Expected<StringRef>
239getSymbolName(constLoaderSectionHeader64 *LoaderSecHeader)const;
240};
241
242structLoaderSectionRelocationEntry32 {
243support::ubig32_tVirtualAddr;
244support::big32_tSymbolIndex;
245support::ubig16_tType;
246support::big16_tSectionNum;
247};
248
249structLoaderSectionRelocationEntry64 {
250support::ubig64_tVirtualAddr;
251support::ubig16_tType;
252support::big16_tSectionNum;
253support::big32_tSymbolIndex;
254};
255
256structLoaderSectionHeader32 {
257support::ubig32_tVersion;
258support::ubig32_tNumberOfSymTabEnt;
259support::ubig32_tNumberOfRelTabEnt;
260support::ubig32_tLengthOfImpidStrTbl;
261support::ubig32_tNumberOfImpid;
262support::big32_tOffsetToImpid;
263support::ubig32_tLengthOfStrTbl;
264support::big32_tOffsetToStrTbl;
265
266uint64_tgetOffsetToSymTbl() const{
267return NumberOfSymTabEnt == 0 ? 0 :sizeof(LoaderSectionHeader32);
268 }
269
270uint64_tgetOffsetToRelEnt() const{
271// Relocation table is after Symbol table.
272return NumberOfRelTabEnt == 0
273 ? 0
274 :sizeof(LoaderSectionHeader32) +
275sizeof(LoaderSectionSymbolEntry32) * NumberOfSymTabEnt;
276 }
277};
278
279structLoaderSectionHeader64 {
280support::ubig32_tVersion;
281support::ubig32_tNumberOfSymTabEnt;
282support::ubig32_tNumberOfRelTabEnt;
283support::ubig32_tLengthOfImpidStrTbl;
284support::ubig32_tNumberOfImpid;
285support::ubig32_tLengthOfStrTbl;
286support::big64_tOffsetToImpid;
287support::big64_tOffsetToStrTbl;
288support::big64_tOffsetToSymTbl;
289support::big64_tOffsetToRelEnt;
290
291uint64_tgetOffsetToSymTbl() const{return OffsetToSymTbl; }
292uint64_tgetOffsetToRelEnt() const{return OffsetToRelEnt; }
293};
294
295template <typename AddressType>structExceptionSectionEntry {
296union{
297support::ubig32_tSymbolIdx;
298 AddressTypeTrapInstAddr;
299 };
300uint8_tLangId;
301uint8_tReason;
302
303uint32_tgetSymbolIndex() const{
304assert(Reason == 0 &&"Get symbol table index of the function only when "
305"the e_reason field is 0.");
306return SymbolIdx;
307 }
308
309uint64_tgetTrapInstAddr() const{
310assert(Reason != 0 &&"Zero is not a valid trap exception reason code.");
311return TrapInstAddr;
312 }
313uint8_tgetLangID() const{return LangId; }
314uint8_tgetReason() const{return Reason; }
315};
316
317typedefExceptionSectionEntry<support::ubig32_t>ExceptionSectionEntry32;
318typedefExceptionSectionEntry<support::ubig64_t>ExceptionSectionEntry64;
319
320// Explicit extern template declarations.
321externtemplatestructExceptionSectionEntry<support::ubig32_t>;
322externtemplatestructExceptionSectionEntry<support::ubig64_t>;
323
324structXCOFFStringTable {
325uint32_tSize;
326constchar *Data;
327};
328
329structXCOFFCsectAuxEnt32 {
330support::ubig32_tSectionOrLength;
331support::ubig32_tParameterHashIndex;
332support::ubig16_tTypeChkSectNum;
333uint8_tSymbolAlignmentAndType;
334XCOFF::StorageMappingClassStorageMappingClass;
335support::ubig32_tStabInfoIndex;
336support::ubig16_tStabSectNum;
337};
338
339structXCOFFCsectAuxEnt64 {
340support::ubig32_tSectionOrLengthLowByte;
341support::ubig32_tParameterHashIndex;
342support::ubig16_tTypeChkSectNum;
343uint8_tSymbolAlignmentAndType;
344XCOFF::StorageMappingClassStorageMappingClass;
345support::ubig32_tSectionOrLengthHighByte;
346uint8_tPad;
347XCOFF::SymbolAuxTypeAuxType;
348};
349
350classXCOFFCsectAuxRef {
351public:
352staticconstexpruint8_t SymbolTypeMask = 0x07;
353staticconstexpruint8_t SymbolAlignmentMask = 0xF8;
354staticconstexprsize_t SymbolAlignmentBitOffset = 3;
355
356XCOFFCsectAuxRef(constXCOFFCsectAuxEnt32 *Entry32) : Entry32(Entry32) {}
357XCOFFCsectAuxRef(constXCOFFCsectAuxEnt64 *Entry64) : Entry64(Entry64) {}
358
359// For getSectionOrLength(),
360// If the symbol type is XTY_SD or XTY_CM, the csect length.
361// If the symbol type is XTY_LD, the symbol table
362// index of the containing csect.
363// If the symbol type is XTY_ER, 0.
364uint64_tgetSectionOrLength() const{
365return Entry32 ? getSectionOrLength32() : getSectionOrLength64();
366 }
367
368uint32_tgetSectionOrLength32() const{
369assert(Entry32 &&"32-bit interface called on 64-bit object file.");
370return Entry32->SectionOrLength;
371 }
372
373uint64_tgetSectionOrLength64() const{
374assert(Entry64 &&"64-bit interface called on 32-bit object file.");
375return (static_cast<uint64_t>(Entry64->SectionOrLengthHighByte) << 32) |
376 Entry64->SectionOrLengthLowByte;
377 }
378
379#define GETVALUE(X) Entry32 ? Entry32->X : Entry64->X
380
381uint32_tgetParameterHashIndex() const{
382returnGETVALUE(ParameterHashIndex);
383 }
384
385uint16_tgetTypeChkSectNum() const{returnGETVALUE(TypeChkSectNum); }
386
387XCOFF::StorageMappingClassgetStorageMappingClass() const{
388returnGETVALUE(StorageMappingClass);
389 }
390
391 uintptr_tgetEntryAddress() const{
392return Entry32 ?reinterpret_cast<uintptr_t>(Entry32)
393 :reinterpret_cast<uintptr_t>(Entry64);
394 }
395
396uint16_tgetAlignmentLog2() const{
397return (getSymbolAlignmentAndType() & SymbolAlignmentMask) >>
398 SymbolAlignmentBitOffset;
399 }
400
401uint8_tgetSymbolType() const{
402return getSymbolAlignmentAndType() & SymbolTypeMask;
403 }
404
405boolisLabel() const{returngetSymbolType() ==XCOFF::XTY_LD; }
406
407uint32_tgetStabInfoIndex32() const{
408assert(Entry32 &&"32-bit interface called on 64-bit object file.");
409return Entry32->StabInfoIndex;
410 }
411
412uint16_tgetStabSectNum32() const{
413assert(Entry32 &&"32-bit interface called on 64-bit object file.");
414return Entry32->StabSectNum;
415 }
416
417XCOFF::SymbolAuxTypegetAuxType64() const{
418assert(Entry64 &&"64-bit interface called on 32-bit object file.");
419return Entry64->AuxType;
420 }
421
422uint8_tgetSymbolAlignmentAndType() const{
423returnGETVALUE(SymbolAlignmentAndType);
424 }
425
426#undef GETVALUE
427
428private:
429constXCOFFCsectAuxEnt32 *Entry32 =nullptr;
430constXCOFFCsectAuxEnt64 *Entry64 =nullptr;
431};
432
433structXCOFFFileAuxEnt {
434typedefstruct{
435support::big32_tMagic;// Zero indicates name in string table.
436support::ubig32_tOffset;
437char NamePad[XCOFF::FileNamePadSize];
438 }NameInStrTblType;
439union{
440charName[XCOFF::NameSize +XCOFF::FileNamePadSize];
441NameInStrTblTypeNameInStrTbl;
442 };
443XCOFF::CFileStringTypeType;
444uint8_tReservedZeros[2];
445XCOFF::SymbolAuxTypeAuxType;// 64-bit XCOFF file only.
446};
447
448structXCOFFSectAuxEntForStat {
449support::ubig32_tSectionLength;
450support::ubig16_tNumberOfRelocEnt;
451support::ubig16_tNumberOfLineNum;
452uint8_tPad[10];
453};// 32-bit XCOFF file only.
454
455structXCOFFFunctionAuxEnt32 {
456support::ubig32_tOffsetToExceptionTbl;
457support::ubig32_tSizeOfFunction;
458support::ubig32_tPtrToLineNum;
459support::big32_tSymIdxOfNextBeyond;
460uint8_tPad[2];
461};
462
463structXCOFFFunctionAuxEnt64 {
464support::ubig64_tPtrToLineNum;
465support::ubig32_tSizeOfFunction;
466support::big32_tSymIdxOfNextBeyond;
467uint8_tPad;
468XCOFF::SymbolAuxTypeAuxType;// Contains _AUX_FCN; Type of auxiliary entry
469};
470
471structXCOFFExceptionAuxEnt {
472support::ubig64_tOffsetToExceptionTbl;
473support::ubig32_tSizeOfFunction;
474support::big32_tSymIdxOfNextBeyond;
475uint8_tPad;
476XCOFF::SymbolAuxTypeAuxType;// Contains _AUX_EXCEPT; Type of auxiliary entry
477};
478
479structXCOFFBlockAuxEnt32 {
480uint8_tReservedZeros1[2];
481support::ubig16_tLineNumHi;
482support::ubig16_tLineNumLo;
483uint8_tReservedZeros2[12];
484};
485
486structXCOFFBlockAuxEnt64 {
487support::ubig32_tLineNum;
488uint8_tPad[13];
489XCOFF::SymbolAuxTypeAuxType;// Contains _AUX_SYM; Type of auxiliary entry
490};
491
492structXCOFFSectAuxEntForDWARF32 {
493support::ubig32_tLengthOfSectionPortion;
494uint8_tPad1[4];
495support::ubig32_tNumberOfRelocEnt;
496uint8_tPad2[6];
497};
498
499structXCOFFSectAuxEntForDWARF64 {
500support::ubig64_tLengthOfSectionPortion;
501support::ubig64_tNumberOfRelocEnt;
502uint8_tPad;
503XCOFF::SymbolAuxTypeAuxType;// Contains _AUX_SECT; Type of Auxillary entry
504};
505
506template <typename AddressType>structXCOFFRelocation {
507public:
508 AddressTypeVirtualAddress;
509support::ubig32_tSymbolIndex;
510
511// Packed field, see XR_* masks for details of packing.
512uint8_tInfo;
513
514XCOFF::RelocationTypeType;
515
516public:
517boolisRelocationSigned()const;
518boolisFixupIndicated()const;
519
520// Returns the number of bits being relocated.
521uint8_tgetRelocatedLength()const;
522};
523
524externtemplatestructXCOFFRelocation<llvm::support::ubig32_t>;
525externtemplatestructXCOFFRelocation<llvm::support::ubig64_t>;
526
527structXCOFFRelocation32 :XCOFFRelocation<llvm::support::ubig32_t> {};
528structXCOFFRelocation64 :XCOFFRelocation<llvm::support::ubig64_t> {};
529
530classXCOFFSymbolRef;
531
532classXCOFFObjectFile :publicObjectFile {
533private:
534constvoid *FileHeader =nullptr;
535constvoid *AuxiliaryHeader =nullptr;
536constvoid *SectionHeaderTable =nullptr;
537
538constvoid *SymbolTblPtr =nullptr;
539XCOFFStringTableStringTable = {0,nullptr};
540
541constXCOFFSectionHeader32 *sectionHeaderTable32()const;
542constXCOFFSectionHeader64 *sectionHeaderTable64()const;
543template <typename T>constT *sectionHeaderTable()const;
544
545size_t getFileHeaderSize()const;
546size_t getSectionHeaderSize()const;
547
548constXCOFFSectionHeader32 *toSection32(DataRefImplRef)const;
549constXCOFFSectionHeader64 *toSection64(DataRefImplRef)const;
550 uintptr_t getSectionHeaderTableAddress()const;
551 uintptr_t getEndOfSymbolTableAddress()const;
552
553DataRefImpl getSectionByType(XCOFF::SectionTypeFlags SectType)const;
554uint64_t getSectionFileOffsetToRawData(DataRefImpl Sec)const;
555
556// This returns a pointer to the start of the storage for the name field of
557// the 32-bit or 64-bit SectionHeader struct. This string is *not* necessarily
558// null-terminated.
559constchar *getSectionNameInternal(DataRefImpl Sec)const;
560
561staticbool isReservedSectionNumber(int16_t SectionNumber);
562
563// Constructor and "create" factory function. The constructor is only a thin
564// wrapper around the base constructor. The "create" function fills out the
565// XCOFF-specific information and performs the error checking along the way.
566XCOFFObjectFile(unsignedType,MemoryBufferRef Object);
567staticExpected<std::unique_ptr<XCOFFObjectFile>> create(unsignedType,
568MemoryBufferRef MBR);
569
570// Helper for parsing the StringTable. Returns an 'Error' if parsing failed
571// and an XCOFFStringTable if parsing succeeded.
572staticExpected<XCOFFStringTable> parseStringTable(constXCOFFObjectFile *Obj,
573uint64_tOffset);
574
575// Make a friend so it can call the private 'create' function.
576friendExpected<std::unique_ptr<ObjectFile>>
577ObjectFile::createXCOFFObjectFile(MemoryBufferRef Object,unsigned FileType);
578
579void checkSectionAddress(uintptr_tAddr, uintptr_t TableAddr)const;
580
581public:
582staticconstexpruint64_t InvalidRelocOffset =
583 std::numeric_limits<uint64_t>::max();
584
585// Interface inherited from base classes.
586void moveSymbolNext(DataRefImpl &Symb)const override;
587Expected<uint32_t> getSymbolFlags(DataRefImpl Symb)const override;
588basic_symbol_iterator symbol_begin()const override;
589basic_symbol_iterator symbol_end()const override;
590
591usingxcoff_symbol_iterator_range =iterator_range<xcoff_symbol_iterator>;
592xcoff_symbol_iterator_range symbols()const;
593
594boolis64Bit()const override;
595Expected<StringRef>getSymbolName(DataRefImpl Symb)const override;
596Expected<uint64_t> getSymbolAddress(DataRefImpl Symb)const override;
597uint64_t getSymbolValueImpl(DataRefImpl Symb)const override;
598uint32_t getSymbolAlignment(DataRefImpl Symb)const override;
599uint64_t getCommonSymbolSizeImpl(DataRefImpl Symb)const override;
600Expected<SymbolRef::Type>getSymbolType(DataRefImpl Symb)const override;
601Expected<section_iterator> getSymbolSection(DataRefImpl Symb)const override;
602
603void moveSectionNext(DataRefImpl &Sec)const override;
604Expected<StringRef>getSectionName(DataRefImpl Sec)const override;
605uint64_t getSectionAddress(DataRefImpl Sec)const override;
606uint64_t getSectionIndex(DataRefImpl Sec)const override;
607uint64_t getSectionSize(DataRefImpl Sec)const override;
608Expected<ArrayRef<uint8_t>>
609 getSectionContents(DataRefImpl Sec)const override;
610uint64_t getSectionAlignment(DataRefImpl Sec)const override;
611bool isSectionCompressed(DataRefImpl Sec)const override;
612bool isSectionText(DataRefImpl Sec)const override;
613bool isSectionData(DataRefImpl Sec)const override;
614bool isSectionBSS(DataRefImpl Sec)const override;
615boolisDebugSection(DataRefImpl Sec)const override;
616
617bool isSectionVirtual(DataRefImpl Sec)const override;
618relocation_iterator section_rel_begin(DataRefImpl Sec)const override;
619relocation_iterator section_rel_end(DataRefImpl Sec)const override;
620
621void moveRelocationNext(DataRefImpl &Rel)const override;
622
623 /// \returns the relocation offset with the base address of the containing
624 /// section as zero, or InvalidRelocOffset on errors (such as a relocation
625 /// that does not refer to an address in any section).
626uint64_t getRelocationOffset(DataRefImpl Rel)const override;
627symbol_iterator getRelocationSymbol(DataRefImpl Rel)const override;
628uint64_t getRelocationType(DataRefImpl Rel)const override;
629void getRelocationTypeName(DataRefImpl Rel,
630SmallVectorImpl<char> &Result)const override;
631
632section_iterator section_begin()const override;
633section_iterator section_end()const override;
634uint8_t getBytesInAddress()const override;
635StringRef getFileFormatName()const override;
636Triple::ArchType getArch()const override;
637Expected<SubtargetFeatures>getFeatures()const override;
638Expected<uint64_t> getStartAddress()const override;
639StringRef mapDebugSectionName(StringRefName)const override;
640bool isRelocatableObject()const override;
641
642// Below here is the non-inherited interface.
643
644Expected<StringRef> getRawData(constchar *Start,uint64_tSize,
645StringRefName)const;
646
647constXCOFFAuxiliaryHeader32 *auxiliaryHeader32()const;
648constXCOFFAuxiliaryHeader64 *auxiliaryHeader64()const;
649
650constvoid *getPointerToSymbolTable() const{return SymbolTblPtr; }
651
652Expected<StringRef> getSymbolSectionName(XCOFFSymbolRefRef)const;
653unsignedgetSymbolSectionID(SymbolRefSym)const;
654XCOFFSymbolRef toSymbolRef(DataRefImplRef)const;
655
656// File header related interfaces.
657constXCOFFFileHeader32 *fileHeader32()const;
658constXCOFFFileHeader64 *fileHeader64()const;
659uint16_t getMagic()const;
660uint16_t getNumberOfSections()const;
661 int32_t getTimeStamp()const;
662
663// Symbol table offset and entry count are handled differently between
664// XCOFF32 and XCOFF64.
665uint32_t getSymbolTableOffset32()const;
666uint64_t getSymbolTableOffset64()const;
667
668// Note that this value is signed and might return a negative value. Negative
669// values are reserved for future use.
670 int32_t getRawNumberOfSymbolTableEntries32()const;
671
672// The sanitized value appropriate to use as an index into the symbol table.
673uint32_t getLogicalNumberOfSymbolTableEntries32()const;
674
675uint32_t getNumberOfSymbolTableEntries64()const;
676
677// Return getLogicalNumberOfSymbolTableEntries32 or
678// getNumberOfSymbolTableEntries64 depending on the object mode.
679uint32_t getNumberOfSymbolTableEntries()const;
680
681uint32_t getSymbolIndex(uintptr_t SymEntPtr)const;
682uint64_t getSymbolSize(DataRefImpl Symb)const;
683 uintptr_tgetSymbolByIndex(uint32_tIdx) const{
684returnreinterpret_cast<uintptr_t>(SymbolTblPtr) +
685XCOFF::SymbolTableEntrySize *Idx;
686 }
687 uintptr_t getSymbolEntryAddressByIndex(uint32_t SymbolTableIndex)const;
688Expected<StringRef> getSymbolNameByIndex(uint32_t SymbolTableIndex)const;
689
690Expected<StringRef> getCFileName(constXCOFFFileAuxEnt *CFileEntPtr)const;
691uint16_t getOptionalHeaderSize()const;
692uint16_tgetFlags()const;
693
694// Section header table related interfaces.
695ArrayRef<XCOFFSectionHeader32> sections32()const;
696ArrayRef<XCOFFSectionHeader64> sections64()const;
697
698 int32_tgetSectionFlags(DataRefImpl Sec)const;
699Expected<DataRefImpl> getSectionByNum(int16_t Num)const;
700
701Expected<uintptr_t>
702 getSectionFileOffsetToRawData(XCOFF::SectionTypeFlags SectType)const;
703
704void checkSymbolEntryPointer(uintptr_t SymbolEntPtr)const;
705
706// Relocation-related interfaces.
707template <typename T>
708Expected<uint32_t>
709 getNumberOfRelocationEntries(constXCOFFSectionHeader<T> &Sec)const;
710
711template <typename Shdr,typename Reloc>
712Expected<ArrayRef<Reloc>> relocations(constShdr &Sec)const;
713
714// Loader section related interfaces.
715Expected<StringRef> getImportFileTable()const;
716
717// Exception-related interface.
718template <typename ExceptEnt>
719Expected<ArrayRef<ExceptEnt>> getExceptionEntries()const;
720
721// This function returns string table entry.
722Expected<StringRef> getStringTableEntry(uint32_tOffset)const;
723
724// This function returns the string table.
725StringRef getStringTable()const;
726
727constXCOFF::SymbolAuxType *getSymbolAuxType(uintptr_t AuxEntryAddress)const;
728
729static uintptr_t getAdvancedSymbolEntryAddress(uintptr_t CurrentAddress,
730uint32_t Distance);
731
732staticboolclassof(constBinary *B) {returnB->isXCOFF(); }
733
734 std::optional<StringRef> tryGetCPUName()const override;
735};// XCOFFObjectFile
736
737typedefstruct{
738uint8_tLanguageId;
739uint8_tCpuTypeId;
740}CFileLanguageIdAndTypeIdType;
741
742structXCOFFSymbolEntry32 {
743typedefstruct{
744support::big32_tMagic;// Zero indicates name in string table.
745support::ubig32_tOffset;
746 }NameInStrTblType;
747
748union{
749charSymbolName[XCOFF::NameSize];
750NameInStrTblTypeNameInStrTbl;
751 };
752
753support::ubig32_tValue;// Symbol value; storage class-dependent.
754support::big16_tSectionNumber;
755
756union{
757support::ubig16_tSymbolType;
758CFileLanguageIdAndTypeIdTypeCFileLanguageIdAndTypeId;
759 };
760
761XCOFF::StorageClassStorageClass;
762uint8_tNumberOfAuxEntries;
763};
764
765structXCOFFSymbolEntry64 {
766support::ubig64_tValue;// Symbol value; storage class-dependent.
767support::ubig32_tOffset;
768support::big16_tSectionNumber;
769
770union{
771support::ubig16_tSymbolType;
772CFileLanguageIdAndTypeIdTypeCFileLanguageIdAndTypeId;
773 };
774
775XCOFF::StorageClassStorageClass;
776uint8_tNumberOfAuxEntries;
777};
778
779externtemplate LLVM_TEMPLATE_ABIExpected<ArrayRef<XCOFFRelocation32>>
780XCOFFObjectFile::relocations<XCOFFSectionHeader32, XCOFFRelocation32>(
781constXCOFFSectionHeader32 &Sec)const;
782externtemplate LLVM_TEMPLATE_ABIExpected<ArrayRef<XCOFFRelocation64>>
783XCOFFObjectFile::relocations<XCOFFSectionHeader64, XCOFFRelocation64>(
784constXCOFFSectionHeader64 &Sec)const;
785
786classXCOFFSymbolRef :publicSymbolRef {
787public:
788enum {NAME_IN_STR_TBL_MAGIC = 0x0 };
789
790XCOFFSymbolRef(DataRefImpl SymEntDataRef,
791constXCOFFObjectFile *OwningObjectPtr)
792 :SymbolRef(SymEntDataRef, OwningObjectPtr) {
793assert(OwningObjectPtr &&"OwningObjectPtr cannot be nullptr!");
794assert(SymEntDataRef.p != 0 &&
795"Symbol table entry pointer cannot be nullptr!");
796 }
797
798constXCOFFSymbolEntry32 *getSymbol32() const{
799returnreinterpret_cast<constXCOFFSymbolEntry32 *>(getRawDataRefImpl().p);
800 }
801
802constXCOFFSymbolEntry64 *getSymbol64() const{
803returnreinterpret_cast<constXCOFFSymbolEntry64 *>(getRawDataRefImpl().p);
804 }
805
806uint64_tgetValue() const{
807return getObject()->is64Bit() ?getValue64() :getValue32();
808 }
809
810uint32_tgetValue32() const{
811returnreinterpret_cast<constXCOFFSymbolEntry32 *>(getRawDataRefImpl().p)
812 ->Value;
813 }
814
815uint64_tgetValue64() const{
816returnreinterpret_cast<constXCOFFSymbolEntry64 *>(getRawDataRefImpl().p)
817 ->Value;
818 }
819
820uint64_tgetSize() const{
821return getObject()->getSymbolSize(getRawDataRefImpl());
822 }
823
824#define GETVALUE(X) \
825 getObject()->is64Bit() \
826 ? reinterpret_cast<const XCOFFSymbolEntry64 *>(getRawDataRefImpl().p)->X \
827 : reinterpret_cast<const XCOFFSymbolEntry32 *>(getRawDataRefImpl().p)->X
828
829 int16_tgetSectionNumber() const{returnGETVALUE(SectionNumber); }
830
831uint16_tgetSymbolType() const{returnGETVALUE(SymbolType); }
832
833uint8_tgetLanguageIdForCFile() const{
834assert(getStorageClass() ==XCOFF::C_FILE &&
835"This interface is for C_FILE only.");
836returnGETVALUE(CFileLanguageIdAndTypeId.LanguageId);
837 }
838
839uint8_tgetCPUTypeIddForCFile() const{
840assert(getStorageClass() ==XCOFF::C_FILE &&
841"This interface is for C_FILE only.");
842returnGETVALUE(CFileLanguageIdAndTypeId.CpuTypeId);
843 }
844
845XCOFF::StorageClassgetStorageClass() const{returnGETVALUE(StorageClass); }
846
847uint8_tgetNumberOfAuxEntries() const{returnGETVALUE(NumberOfAuxEntries); }
848
849#undef GETVALUE
850
851 uintptr_tgetEntryAddress() const{
852returngetRawDataRefImpl().p;
853 }
854
855Expected<StringRef>getName()const;
856Expected<bool>isFunction()const;
857boolisCsectSymbol()const;
858Expected<XCOFFCsectAuxRef>getXCOFFCsectAuxRef()const;
859
860private:
861constXCOFFObjectFile *getObject() const{
862return cast<XCOFFObjectFile>(BasicSymbolRef::getObject());
863 }
864};
865
866classxcoff_symbol_iterator :publicsymbol_iterator {
867public:
868xcoff_symbol_iterator(constbasic_symbol_iterator &B)
869 :symbol_iterator(B) {}
870
871xcoff_symbol_iterator(constXCOFFSymbolRef *Symbol)
872 :symbol_iterator(*Symbol) {}
873
874constXCOFFSymbolRef *operator->() const{
875returnstatic_cast<constXCOFFSymbolRef *>(symbol_iterator::operator->());
876 }
877
878constXCOFFSymbolRef &operator*() const{
879returnstatic_cast<constXCOFFSymbolRef &>(symbol_iterator::operator*());
880 }
881};
882
883classTBVectorExt {
884uint16_t Data;
885SmallString<32> VecParmsInfo;
886
887TBVectorExt(StringRef TBvectorStrRef,Error &Err);
888
889public:
890staticExpected<TBVectorExt>create(StringRef TBvectorStrRef);
891uint8_tgetNumberOfVRSaved()const;
892boolisVRSavedOnStack()const;
893boolhasVarArgs()const;
894uint8_tgetNumberOfVectorParms()const;
895boolhasVMXInstruction()const;
896SmallString<32>getVectorParmsInfo() const{return VecParmsInfo; };
897};
898
899/// This class provides methods to extract traceback table data from a buffer.
900/// The various accessors may reference the buffer provided via the constructor.
901
902classXCOFFTracebackTable {
903constuint8_t *const TBPtr;
904bool Is64BitObj;
905 std::optional<SmallString<32>> ParmsType;
906 std::optional<uint32_t> TraceBackTableOffset;
907 std::optional<uint32_t> HandlerMask;
908 std::optional<uint32_t> NumOfCtlAnchors;
909 std::optional<SmallVector<uint32_t, 8>> ControlledStorageInfoDisp;
910 std::optional<StringRef> FunctionName;
911 std::optional<uint8_t> AllocaRegister;
912 std::optional<TBVectorExt> VecExt;
913 std::optional<uint8_t> ExtensionTable;
914 std::optional<uint64_t> EhInfoDisp;
915
916XCOFFTracebackTable(constuint8_t *Ptr,uint64_t &Size,Error &Err,
917bool Is64Bit =false);
918
919public:
920 /// Parse an XCOFF Traceback Table from \a Ptr with \a Size bytes.
921 /// Returns an XCOFFTracebackTable upon successful parsing, otherwise an
922 /// Error is returned.
923 ///
924 /// \param[in] Ptr
925 /// A pointer that points just past the initial 4 bytes of zeros at the
926 /// beginning of an XCOFF Traceback Table.
927 ///
928 /// \param[in, out] Size
929 /// A pointer that points to the length of the XCOFF Traceback Table.
930 /// If the XCOFF Traceback Table is not parsed successfully or there are
931 /// extra bytes that are not recognized, \a Size will be updated to be the
932 /// size up to the end of the last successfully parsed field of the table.
933staticExpected<XCOFFTracebackTable>
934create(constuint8_t *Ptr,uint64_t &Size,bool Is64Bits =false);
935uint8_tgetVersion()const;
936uint8_tgetLanguageID()const;
937
938boolisGlobalLinkage()const;
939boolisOutOfLineEpilogOrPrologue()const;
940boolhasTraceBackTableOffset()const;
941boolisInternalProcedure()const;
942boolhasControlledStorage()const;
943boolisTOCless()const;
944boolisFloatingPointPresent()const;
945boolisFloatingPointOperationLogOrAbortEnabled()const;
946
947boolisInterruptHandler()const;
948boolisFuncNamePresent()const;
949boolisAllocaUsed()const;
950uint8_tgetOnConditionDirective()const;
951boolisCRSaved()const;
952boolisLRSaved()const;
953
954boolisBackChainStored()const;
955boolisFixup()const;
956uint8_tgetNumOfFPRsSaved()const;
957
958boolhasVectorInfo()const;
959boolhasExtensionTable()const;
960uint8_tgetNumOfGPRsSaved()const;
961
962uint8_tgetNumberOfFixedParms()const;
963
964uint8_tgetNumberOfFPParms()const;
965boolhasParmsOnStack()const;
966
967const std::optional<SmallString<32>> &getParmsType() const{
968return ParmsType;
969 }
970const std::optional<uint32_t> &getTraceBackTableOffset() const{
971return TraceBackTableOffset;
972 }
973const std::optional<uint32_t> &getHandlerMask() const{return HandlerMask; }
974const std::optional<uint32_t> &getNumOfCtlAnchors() {
975return NumOfCtlAnchors;
976 }
977const std::optional<SmallVector<uint32_t, 8>> &
978getControlledStorageInfoDisp() {
979return ControlledStorageInfoDisp;
980 }
981const std::optional<StringRef> &getFunctionName() const{
982return FunctionName;
983 }
984const std::optional<uint8_t> &getAllocaRegister() const{
985return AllocaRegister;
986 }
987const std::optional<TBVectorExt> &getVectorExt() const{return VecExt; }
988const std::optional<uint8_t> &getExtensionTable() const{
989return ExtensionTable;
990 }
991const std::optional<uint64_t> &getEhInfoDisp() const{return EhInfoDisp; }
992};
993
994booldoesXCOFFTracebackTableBegin(ArrayRef<uint8_t> Bytes);
995}// namespace object
996}// namespace llvm
997
998#endif// LLVM_OBJECT_XCOFFOBJECTFILE_H
B
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
getSymbolName
static StringRef getSymbolName(SymbolKind SymKind)
Definition:CodeViewDebug.cpp:3137
Compiler.h
Idx
Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
Definition:DeadArgumentElimination.cpp:353
Shdr
Elf_Shdr Shdr
Definition:ELFObjHandler.cpp:78
Addr
uint64_t Addr
Definition:ELFObjHandler.cpp:79
Name
std::string Name
Definition:ELFObjHandler.cpp:77
Size
uint64_t Size
Definition:ELFObjHandler.cpp:81
isDebugSection
static bool isDebugSection(const SectionBase &Sec)
Definition:ELFObjcopy.cpp:49
Sym
Symbol * Sym
Definition:ELF_riscv.cpp:479
Endian.h
getFeatures
static FeatureBitset getFeatures(MCSubtargetInfo &STI, StringRef CPU, StringRef TuneCPU, StringRef FS, ArrayRef< StringRef > ProcNames, ArrayRef< SubtargetSubTypeKV > ProcDesc, ArrayRef< SubtargetFeatureKV > ProcFeatures)
Definition:MCSubtargetInfo.cpp:169
getSectionFlags
static uint32_t getSectionFlags(const MachOObjectFile &O, DataRefImpl Sec)
Definition:MachOObjectFile.cpp:181
ObjectFile.h
assert
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
SmallString.h
This file defines the SmallString class.
SmallVector.h
This file defines the SmallVector class.
getSymbolSectionID
static unsigned getSymbolSectionID(const ObjectFile &O, SymbolRef Sym)
Definition:SymbolSize.cpp:39
getFlags
static uint32_t getFlags(const Symbol *Sym)
Definition:TapiFile.cpp:26
Ptr
@ Ptr
Definition:TargetLibraryInfo.cpp:77
getSymbolType
static std::unique_ptr< PDBSymbol > getSymbolType(const PDBSymbol &Symbol)
Definition:UDTLayout.cpp:36
is64Bit
static bool is64Bit(const char *name)
Definition:X86Disassembler.cpp:1085
GETVALUE
#define GETVALUE(X)
Definition:XCOFFObjectFile.h:824
XCOFF.h
T
llvm::ArrayRef
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition:ArrayRef.h:41
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition:Error.h:160
llvm::Expected
Tagged union holding either a T or a Error.
Definition:Error.h:481
llvm::MemoryBufferRef
Definition:MemoryBufferRef.h:22
llvm::SmallString
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
Definition:SmallString.h:26
llvm::SmallVectorImpl
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Definition:SmallVector.h:573
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition:StringRef.h:51
llvm::StringTable
A table of densely packed, null-terminated strings indexed by offset.
Definition:StringTable.h:33
llvm::Triple::ArchType
ArchType
Definition:Triple.h:46
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed.
Definition:Type.h:45
llvm::Value
LLVM Value Representation.
Definition:Value.h:74
llvm::iterator_range
A range adaptor for a pair of iterators.
Definition:iterator_range.h:42
llvm::object::BasicSymbolRef::getObject
const SymbolicFile * getObject() const
Definition:SymbolicFile.h:214
llvm::object::BasicSymbolRef::getRawDataRefImpl
DataRefImpl getRawDataRefImpl() const
Definition:SymbolicFile.h:210
llvm::object::Binary
Definition:Binary.h:32
llvm::object::ObjectFile
This class is the base class for all object file types.
Definition:ObjectFile.h:229
llvm::object::ObjectFile::createXCOFFObjectFile
static Expected< std::unique_ptr< ObjectFile > > createXCOFFObjectFile(MemoryBufferRef Object, unsigned FileType)
Definition:XCOFFObjectFile.cpp:1232
llvm::object::SymbolRef
This is a value type class that represents a single symbol in the list of symbols in the object file.
Definition:ObjectFile.h:168
llvm::object::TBVectorExt
Definition:XCOFFObjectFile.h:883
llvm::object::TBVectorExt::getVectorParmsInfo
SmallString< 32 > getVectorParmsInfo() const
Definition:XCOFFObjectFile.h:896
llvm::object::TBVectorExt::getNumberOfVectorParms
uint8_t getNumberOfVectorParms() const
Definition:XCOFFObjectFile.cpp:1438
llvm::object::TBVectorExt::create
static Expected< TBVectorExt > create(StringRef TBvectorStrRef)
Definition:XCOFFObjectFile.cpp:1402
llvm::object::TBVectorExt::isVRSavedOnStack
bool isVRSavedOnStack() const
Definition:XCOFFObjectFile.cpp:1430
llvm::object::TBVectorExt::getNumberOfVRSaved
uint8_t getNumberOfVRSaved() const
Definition:XCOFFObjectFile.cpp:1426
llvm::object::TBVectorExt::hasVarArgs
bool hasVarArgs() const
Definition:XCOFFObjectFile.cpp:1434
llvm::object::TBVectorExt::hasVMXInstruction
bool hasVMXInstruction() const
Definition:XCOFFObjectFile.cpp:1443
llvm::object::XCOFFCsectAuxRef
Definition:XCOFFObjectFile.h:350
llvm::object::XCOFFCsectAuxRef::getStorageMappingClass
XCOFF::StorageMappingClass getStorageMappingClass() const
Definition:XCOFFObjectFile.h:387
llvm::object::XCOFFCsectAuxRef::isLabel
bool isLabel() const
Definition:XCOFFObjectFile.h:405
llvm::object::XCOFFCsectAuxRef::XCOFFCsectAuxRef
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt32 *Entry32)
Definition:XCOFFObjectFile.h:356
llvm::object::XCOFFCsectAuxRef::getSectionOrLength32
uint32_t getSectionOrLength32() const
Definition:XCOFFObjectFile.h:368
llvm::object::XCOFFCsectAuxRef::getStabSectNum32
uint16_t getStabSectNum32() const
Definition:XCOFFObjectFile.h:412
llvm::object::XCOFFCsectAuxRef::getParameterHashIndex
uint32_t getParameterHashIndex() const
Definition:XCOFFObjectFile.h:381
llvm::object::XCOFFCsectAuxRef::getSymbolType
uint8_t getSymbolType() const
Definition:XCOFFObjectFile.h:401
llvm::object::XCOFFCsectAuxRef::getEntryAddress
uintptr_t getEntryAddress() const
Definition:XCOFFObjectFile.h:391
llvm::object::XCOFFCsectAuxRef::getSectionOrLength
uint64_t getSectionOrLength() const
Definition:XCOFFObjectFile.h:364
llvm::object::XCOFFCsectAuxRef::getAlignmentLog2
uint16_t getAlignmentLog2() const
Definition:XCOFFObjectFile.h:396
llvm::object::XCOFFCsectAuxRef::XCOFFCsectAuxRef
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt64 *Entry64)
Definition:XCOFFObjectFile.h:357
llvm::object::XCOFFCsectAuxRef::getStabInfoIndex32
uint32_t getStabInfoIndex32() const
Definition:XCOFFObjectFile.h:407
llvm::object::XCOFFCsectAuxRef::getSectionOrLength64
uint64_t getSectionOrLength64() const
Definition:XCOFFObjectFile.h:373
llvm::object::XCOFFCsectAuxRef::getAuxType64
XCOFF::SymbolAuxType getAuxType64() const
Definition:XCOFFObjectFile.h:417
llvm::object::XCOFFCsectAuxRef::getTypeChkSectNum
uint16_t getTypeChkSectNum() const
Definition:XCOFFObjectFile.h:385
llvm::object::XCOFFCsectAuxRef::getSymbolAlignmentAndType
uint8_t getSymbolAlignmentAndType() const
Definition:XCOFFObjectFile.h:422
llvm::object::XCOFFObjectFile
Definition:XCOFFObjectFile.h:532
llvm::object::XCOFFObjectFile::getPointerToSymbolTable
const void * getPointerToSymbolTable() const
Definition:XCOFFObjectFile.h:650
llvm::object::XCOFFObjectFile::classof
static bool classof(const Binary *B)
Definition:XCOFFObjectFile.h:732
llvm::object::XCOFFObjectFile::getSymbolByIndex
uintptr_t getSymbolByIndex(uint32_t Idx) const
Definition:XCOFFObjectFile.h:683
llvm::object::XCOFFObjectFile::is64Bit
bool is64Bit() const override
Definition:XCOFFObjectFile.cpp:773
llvm::object::XCOFFObjectFile::getSymbolSize
uint64_t getSymbolSize(DataRefImpl Symb) const
Definition:XCOFFObjectFile.cpp:922
llvm::object::XCOFFSymbolRef
Definition:XCOFFObjectFile.h:786
llvm::object::XCOFFSymbolRef::getXCOFFCsectAuxRef
Expected< XCOFFCsectAuxRef > getXCOFFCsectAuxRef() const
Definition:XCOFFObjectFile.cpp:1313
llvm::object::XCOFFSymbolRef::isFunction
Expected< bool > isFunction() const
Definition:XCOFFObjectFile.cpp:1241
llvm::object::XCOFFSymbolRef::getSectionNumber
int16_t getSectionNumber() const
Definition:XCOFFObjectFile.h:829
llvm::object::XCOFFSymbolRef::isCsectSymbol
bool isCsectSymbol() const
Definition:XCOFFObjectFile.cpp:1307
llvm::object::XCOFFSymbolRef::getSize
uint64_t getSize() const
Definition:XCOFFObjectFile.h:820
llvm::object::XCOFFSymbolRef::getSymbol64
const XCOFFSymbolEntry64 * getSymbol64() const
Definition:XCOFFObjectFile.h:802
llvm::object::XCOFFSymbolRef::XCOFFSymbolRef
XCOFFSymbolRef(DataRefImpl SymEntDataRef, const XCOFFObjectFile *OwningObjectPtr)
Definition:XCOFFObjectFile.h:790
llvm::object::XCOFFSymbolRef::getSymbol32
const XCOFFSymbolEntry32 * getSymbol32() const
Definition:XCOFFObjectFile.h:798
llvm::object::XCOFFSymbolRef::NAME_IN_STR_TBL_MAGIC
@ NAME_IN_STR_TBL_MAGIC
Definition:XCOFFObjectFile.h:788
llvm::object::XCOFFSymbolRef::getSymbolType
uint16_t getSymbolType() const
Definition:XCOFFObjectFile.h:831
llvm::object::XCOFFSymbolRef::getValue32
uint32_t getValue32() const
Definition:XCOFFObjectFile.h:810
llvm::object::XCOFFSymbolRef::getValue
uint64_t getValue() const
Definition:XCOFFObjectFile.h:806
llvm::object::XCOFFSymbolRef::getName
Expected< StringRef > getName() const
Definition:XCOFFObjectFile.cpp:1356
llvm::object::XCOFFSymbolRef::getCPUTypeIddForCFile
uint8_t getCPUTypeIddForCFile() const
Definition:XCOFFObjectFile.h:839
llvm::object::XCOFFSymbolRef::getValue64
uint64_t getValue64() const
Definition:XCOFFObjectFile.h:815
llvm::object::XCOFFSymbolRef::getNumberOfAuxEntries
uint8_t getNumberOfAuxEntries() const
Definition:XCOFFObjectFile.h:847
llvm::object::XCOFFSymbolRef::getEntryAddress
uintptr_t getEntryAddress() const
Definition:XCOFFObjectFile.h:851
llvm::object::XCOFFSymbolRef::getStorageClass
XCOFF::StorageClass getStorageClass() const
Definition:XCOFFObjectFile.h:845
llvm::object::XCOFFSymbolRef::getLanguageIdForCFile
uint8_t getLanguageIdForCFile() const
Definition:XCOFFObjectFile.h:833
llvm::object::XCOFFTracebackTable
This class provides methods to extract traceback table data from a buffer.
Definition:XCOFFObjectFile.h:902
llvm::object::XCOFFTracebackTable::isOutOfLineEpilogOrPrologue
bool isOutOfLineEpilogOrPrologue() const
Definition:XCOFFObjectFile.cpp:1570
llvm::object::XCOFFTracebackTable::getFunctionName
const std::optional< StringRef > & getFunctionName() const
Definition:XCOFFObjectFile.h:981
llvm::object::XCOFFTracebackTable::getEhInfoDisp
const std::optional< uint64_t > & getEhInfoDisp() const
Definition:XCOFFObjectFile.h:991
llvm::object::XCOFFTracebackTable::getTraceBackTableOffset
const std::optional< uint32_t > & getTraceBackTableOffset() const
Definition:XCOFFObjectFile.h:970
llvm::object::XCOFFTracebackTable::getNumOfGPRsSaved
uint8_t getNumOfGPRsSaved() const
Definition:XCOFFObjectFile.cpp:1643
llvm::object::XCOFFTracebackTable::hasTraceBackTableOffset
bool hasTraceBackTableOffset() const
Definition:XCOFFObjectFile.cpp:1574
llvm::object::XCOFFTracebackTable::hasParmsOnStack
bool hasParmsOnStack() const
Definition:XCOFFObjectFile.cpp:1657
llvm::object::XCOFFTracebackTable::hasExtensionTable
bool hasExtensionTable() const
Definition:XCOFFObjectFile.cpp:1635
llvm::object::XCOFFTracebackTable::getControlledStorageInfoDisp
const std::optional< SmallVector< uint32_t, 8 > > & getControlledStorageInfoDisp()
Definition:XCOFFObjectFile.h:978
llvm::object::XCOFFTracebackTable::getExtensionTable
const std::optional< uint8_t > & getExtensionTable() const
Definition:XCOFFObjectFile.h:988
llvm::object::XCOFFTracebackTable::getParmsType
const std::optional< SmallString< 32 > > & getParmsType() const
Definition:XCOFFObjectFile.h:967
llvm::object::XCOFFTracebackTable::getOnConditionDirective
uint8_t getOnConditionDirective() const
Definition:XCOFFObjectFile.cpp:1610
llvm::object::XCOFFTracebackTable::getLanguageID
uint8_t getLanguageID() const
Definition:XCOFFObjectFile.cpp:1562
llvm::object::XCOFFTracebackTable::getNumOfFPRsSaved
uint8_t getNumOfFPRsSaved() const
Definition:XCOFFObjectFile.cpp:1631
llvm::object::XCOFFTracebackTable::isFloatingPointOperationLogOrAbortEnabled
bool isFloatingPointOperationLogOrAbortEnabled() const
Definition:XCOFFObjectFile.cpp:1594
llvm::object::XCOFFTracebackTable::isLRSaved
bool isLRSaved() const
Definition:XCOFFObjectFile.cpp:1619
llvm::object::XCOFFTracebackTable::getNumberOfFPParms
uint8_t getNumberOfFPParms() const
Definition:XCOFFObjectFile.cpp:1652
llvm::object::XCOFFTracebackTable::isFuncNamePresent
bool isFuncNamePresent() const
Definition:XCOFFObjectFile.cpp:1602
llvm::object::XCOFFTracebackTable::getNumOfCtlAnchors
const std::optional< uint32_t > & getNumOfCtlAnchors()
Definition:XCOFFObjectFile.h:974
llvm::object::XCOFFTracebackTable::isAllocaUsed
bool isAllocaUsed() const
Definition:XCOFFObjectFile.cpp:1606
llvm::object::XCOFFTracebackTable::isGlobalLinkage
bool isGlobalLinkage() const
Definition:XCOFFObjectFile.cpp:1566
llvm::object::XCOFFTracebackTable::getHandlerMask
const std::optional< uint32_t > & getHandlerMask() const
Definition:XCOFFObjectFile.h:973
llvm::object::XCOFFTracebackTable::isInternalProcedure
bool isInternalProcedure() const
Definition:XCOFFObjectFile.cpp:1578
llvm::object::XCOFFTracebackTable::hasControlledStorage
bool hasControlledStorage() const
Definition:XCOFFObjectFile.cpp:1582
llvm::object::XCOFFTracebackTable::isInterruptHandler
bool isInterruptHandler() const
Definition:XCOFFObjectFile.cpp:1598
llvm::object::XCOFFTracebackTable::getVectorExt
const std::optional< TBVectorExt > & getVectorExt() const
Definition:XCOFFObjectFile.h:987
llvm::object::XCOFFTracebackTable::isFixup
bool isFixup() const
Definition:XCOFFObjectFile.cpp:1627
llvm::object::XCOFFTracebackTable::isFloatingPointPresent
bool isFloatingPointPresent() const
Definition:XCOFFObjectFile.cpp:1590
llvm::object::XCOFFTracebackTable::getVersion
uint8_t getVersion() const
Definition:XCOFFObjectFile.cpp:1558
llvm::object::XCOFFTracebackTable::create
static Expected< XCOFFTracebackTable > create(const uint8_t *Ptr, uint64_t &Size, bool Is64Bits=false)
Parse an XCOFF Traceback Table from Ptr with Size bytes.
Definition:XCOFFObjectFile.cpp:1450
llvm::object::XCOFFTracebackTable::isBackChainStored
bool isBackChainStored() const
Definition:XCOFFObjectFile.cpp:1623
llvm::object::XCOFFTracebackTable::getAllocaRegister
const std::optional< uint8_t > & getAllocaRegister() const
Definition:XCOFFObjectFile.h:984
llvm::object::XCOFFTracebackTable::getNumberOfFixedParms
uint8_t getNumberOfFixedParms() const
Definition:XCOFFObjectFile.cpp:1647
llvm::object::XCOFFTracebackTable::isCRSaved
bool isCRSaved() const
Definition:XCOFFObjectFile.cpp:1615
llvm::object::XCOFFTracebackTable::isTOCless
bool isTOCless() const
Definition:XCOFFObjectFile.cpp:1586
llvm::object::XCOFFTracebackTable::hasVectorInfo
bool hasVectorInfo() const
Definition:XCOFFObjectFile.cpp:1639
llvm::object::content_iterator
Definition:SymbolicFile.h:69
llvm::object::symbol_iterator
Definition:ObjectFile.h:208
llvm::object::symbol_iterator::operator->
const SymbolRef * operator->() const
Definition:ObjectFile.h:215
llvm::object::symbol_iterator::operator*
const SymbolRef & operator*() const
Definition:ObjectFile.h:220
llvm::object::xcoff_symbol_iterator
Definition:XCOFFObjectFile.h:866
llvm::object::xcoff_symbol_iterator::operator->
const XCOFFSymbolRef * operator->() const
Definition:XCOFFObjectFile.h:874
llvm::object::xcoff_symbol_iterator::operator*
const XCOFFSymbolRef & operator*() const
Definition:XCOFFObjectFile.h:878
llvm::object::xcoff_symbol_iterator::xcoff_symbol_iterator
xcoff_symbol_iterator(const XCOFFSymbolRef *Symbol)
Definition:XCOFFObjectFile.h:871
llvm::object::xcoff_symbol_iterator::xcoff_symbol_iterator
xcoff_symbol_iterator(const basic_symbol_iterator &B)
Definition:XCOFFObjectFile.h:868
uint16_t
uint32_t
uint64_t
uint8_t
iterator_range.h
This provides a very simple, boring adaptor for a begin and end iterator into a range type.
llvm::XCOFF::SymbolAuxType
SymbolAuxType
Definition:XCOFF.h:365
llvm::XCOFF::RelocationType
RelocationType
Definition:XCOFF.h:262
llvm::XCOFF::NameSize
constexpr size_t NameSize
Definition:XCOFF.h:29
llvm::XCOFF::CFileStringType
CFileStringType
Definition:XCOFF.h:323
llvm::XCOFF::StorageClass
StorageClass
Definition:XCOFF.h:170
llvm::XCOFF::C_FILE
@ C_FILE
Definition:XCOFF.h:172
llvm::XCOFF::StorageMappingClass
StorageMappingClass
Storage Mapping Class definitions.
Definition:XCOFF.h:103
llvm::XCOFF::SymbolTableEntrySize
constexpr size_t SymbolTableEntrySize
Definition:XCOFF.h:38
llvm::XCOFF::FileNamePadSize
constexpr size_t FileNamePadSize
Definition:XCOFF.h:28
llvm::XCOFF::SymbolType
SymbolType
Definition:XCOFF.h:240
llvm::XCOFF::XTY_LD
@ XTY_LD
Label definition.
Definition:XCOFF.h:243
llvm::XCOFF::SectionTypeFlags
SectionTypeFlags
Definition:XCOFF.h:134
llvm::dwarf_linker::getSectionName
static constexpr const StringLiteral & getSectionName(DebugSectionKind SectionKind)
Return the name of the section.
Definition:DWARFLinkerBase.h:66
llvm::object::doesXCOFFTracebackTableBegin
bool doesXCOFFTracebackTableBegin(ArrayRef< uint8_t > Bytes)
Definition:XCOFFObjectFile.cpp:1391
llvm::object::ExceptionSectionEntry64
ExceptionSectionEntry< support::ubig64_t > ExceptionSectionEntry64
Definition:XCOFFObjectFile.h:318
llvm::object::ExceptionSectionEntry32
ExceptionSectionEntry< support::ubig32_t > ExceptionSectionEntry32
Definition:XCOFFObjectFile.h:317
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:AddressRanges.h:18
llvm::Offset
@ Offset
Definition:DWP.cpp:480
llvm::ModRefInfo::Ref
@ Ref
The access may reference the value stored in memory.
llvm::Version
@ Version
Definition:PGOCtxProfWriter.h:22
llvm::object::CFileLanguageIdAndTypeIdType
Definition:XCOFFObjectFile.h:737
llvm::object::CFileLanguageIdAndTypeIdType::CpuTypeId
uint8_t CpuTypeId
Definition:XCOFFObjectFile.h:739
llvm::object::CFileLanguageIdAndTypeIdType::LanguageId
uint8_t LanguageId
Definition:XCOFFObjectFile.h:738
llvm::object::ExceptionSectionEntry
Definition:XCOFFObjectFile.h:295
llvm::object::ExceptionSectionEntry::SymbolIdx
support::ubig32_t SymbolIdx
Definition:XCOFFObjectFile.h:297
llvm::object::ExceptionSectionEntry::Reason
uint8_t Reason
Definition:XCOFFObjectFile.h:301
llvm::object::ExceptionSectionEntry::LangId
uint8_t LangId
Definition:XCOFFObjectFile.h:300
llvm::object::ExceptionSectionEntry::TrapInstAddr
AddressType TrapInstAddr
Definition:XCOFFObjectFile.h:298
llvm::object::ExceptionSectionEntry::getReason
uint8_t getReason() const
Definition:XCOFFObjectFile.h:314
llvm::object::ExceptionSectionEntry::getTrapInstAddr
uint64_t getTrapInstAddr() const
Definition:XCOFFObjectFile.h:309
llvm::object::ExceptionSectionEntry::getLangID
uint8_t getLangID() const
Definition:XCOFFObjectFile.h:313
llvm::object::ExceptionSectionEntry::getSymbolIndex
uint32_t getSymbolIndex() const
Definition:XCOFFObjectFile.h:303
llvm::object::LoaderSectionHeader32
Definition:XCOFFObjectFile.h:256
llvm::object::LoaderSectionHeader32::NumberOfRelTabEnt
support::ubig32_t NumberOfRelTabEnt
Definition:XCOFFObjectFile.h:259
llvm::object::LoaderSectionHeader32::LengthOfImpidStrTbl
support::ubig32_t LengthOfImpidStrTbl
Definition:XCOFFObjectFile.h:260
llvm::object::LoaderSectionHeader32::NumberOfImpid
support::ubig32_t NumberOfImpid
Definition:XCOFFObjectFile.h:261
llvm::object::LoaderSectionHeader32::getOffsetToSymTbl
uint64_t getOffsetToSymTbl() const
Definition:XCOFFObjectFile.h:266
llvm::object::LoaderSectionHeader32::getOffsetToRelEnt
uint64_t getOffsetToRelEnt() const
Definition:XCOFFObjectFile.h:270
llvm::object::LoaderSectionHeader32::Version
support::ubig32_t Version
Definition:XCOFFObjectFile.h:257
llvm::object::LoaderSectionHeader32::LengthOfStrTbl
support::ubig32_t LengthOfStrTbl
Definition:XCOFFObjectFile.h:263
llvm::object::LoaderSectionHeader32::OffsetToImpid
support::big32_t OffsetToImpid
Definition:XCOFFObjectFile.h:262
llvm::object::LoaderSectionHeader32::NumberOfSymTabEnt
support::ubig32_t NumberOfSymTabEnt
Definition:XCOFFObjectFile.h:258
llvm::object::LoaderSectionHeader32::OffsetToStrTbl
support::big32_t OffsetToStrTbl
Definition:XCOFFObjectFile.h:264
llvm::object::LoaderSectionHeader64
Definition:XCOFFObjectFile.h:279
llvm::object::LoaderSectionHeader64::LengthOfImpidStrTbl
support::ubig32_t LengthOfImpidStrTbl
Definition:XCOFFObjectFile.h:283
llvm::object::LoaderSectionHeader64::NumberOfImpid
support::ubig32_t NumberOfImpid
Definition:XCOFFObjectFile.h:284
llvm::object::LoaderSectionHeader64::LengthOfStrTbl
support::ubig32_t LengthOfStrTbl
Definition:XCOFFObjectFile.h:285
llvm::object::LoaderSectionHeader64::NumberOfSymTabEnt
support::ubig32_t NumberOfSymTabEnt
Definition:XCOFFObjectFile.h:281
llvm::object::LoaderSectionHeader64::NumberOfRelTabEnt
support::ubig32_t NumberOfRelTabEnt
Definition:XCOFFObjectFile.h:282
llvm::object::LoaderSectionHeader64::getOffsetToRelEnt
uint64_t getOffsetToRelEnt() const
Definition:XCOFFObjectFile.h:292
llvm::object::LoaderSectionHeader64::Version
support::ubig32_t Version
Definition:XCOFFObjectFile.h:280
llvm::object::LoaderSectionHeader64::OffsetToImpid
support::big64_t OffsetToImpid
Definition:XCOFFObjectFile.h:286
llvm::object::LoaderSectionHeader64::OffsetToRelEnt
support::big64_t OffsetToRelEnt
Definition:XCOFFObjectFile.h:289
llvm::object::LoaderSectionHeader64::OffsetToStrTbl
support::big64_t OffsetToStrTbl
Definition:XCOFFObjectFile.h:287
llvm::object::LoaderSectionHeader64::OffsetToSymTbl
support::big64_t OffsetToSymTbl
Definition:XCOFFObjectFile.h:288
llvm::object::LoaderSectionHeader64::getOffsetToSymTbl
uint64_t getOffsetToSymTbl() const
Definition:XCOFFObjectFile.h:291
llvm::object::LoaderSectionRelocationEntry32
Definition:XCOFFObjectFile.h:242
llvm::object::LoaderSectionRelocationEntry32::SymbolIndex
support::big32_t SymbolIndex
Definition:XCOFFObjectFile.h:244
llvm::object::LoaderSectionRelocationEntry32::Type
support::ubig16_t Type
Definition:XCOFFObjectFile.h:245
llvm::object::LoaderSectionRelocationEntry32::VirtualAddr
support::ubig32_t VirtualAddr
Definition:XCOFFObjectFile.h:243
llvm::object::LoaderSectionRelocationEntry32::SectionNum
support::big16_t SectionNum
Definition:XCOFFObjectFile.h:246
llvm::object::LoaderSectionRelocationEntry64
Definition:XCOFFObjectFile.h:249
llvm::object::LoaderSectionRelocationEntry64::VirtualAddr
support::ubig64_t VirtualAddr
Definition:XCOFFObjectFile.h:250
llvm::object::LoaderSectionRelocationEntry64::SectionNum
support::big16_t SectionNum
Definition:XCOFFObjectFile.h:252
llvm::object::LoaderSectionRelocationEntry64::SymbolIndex
support::big32_t SymbolIndex
Definition:XCOFFObjectFile.h:253
llvm::object::LoaderSectionRelocationEntry64::Type
support::ubig16_t Type
Definition:XCOFFObjectFile.h:251
llvm::object::LoaderSectionSymbolEntry32::NameOffsetInStrTbl
Definition:XCOFFObjectFile.h:212
llvm::object::LoaderSectionSymbolEntry32::NameOffsetInStrTbl::Offset
support::ubig32_t Offset
Definition:XCOFFObjectFile.h:214
llvm::object::LoaderSectionSymbolEntry32::NameOffsetInStrTbl::IsNameInStrTbl
support::big32_t IsNameInStrTbl
Definition:XCOFFObjectFile.h:213
llvm::object::LoaderSectionSymbolEntry32
Definition:XCOFFObjectFile.h:211
llvm::object::LoaderSectionSymbolEntry32::StorageClass
XCOFF::StorageClass StorageClass
Definition:XCOFFObjectFile.h:221
llvm::object::LoaderSectionSymbolEntry32::Value
support::ubig32_t Value
Definition:XCOFFObjectFile.h:218
llvm::object::LoaderSectionSymbolEntry32::SectionNumber
support::big16_t SectionNumber
Definition:XCOFFObjectFile.h:219
llvm::object::LoaderSectionSymbolEntry32::ParameterTypeCheck
support::ubig32_t ParameterTypeCheck
Definition:XCOFFObjectFile.h:223
llvm::object::LoaderSectionSymbolEntry32::ImportFileID
support::ubig32_t ImportFileID
Definition:XCOFFObjectFile.h:222
llvm::object::LoaderSectionSymbolEntry32::SymbolType
uint8_t SymbolType
Definition:XCOFFObjectFile.h:220
llvm::object::LoaderSectionSymbolEntry64
Definition:XCOFFObjectFile.h:229
llvm::object::LoaderSectionSymbolEntry64::SymbolType
uint8_t SymbolType
Definition:XCOFFObjectFile.h:233
llvm::object::LoaderSectionSymbolEntry64::ParameterTypeCheck
support::ubig32_t ParameterTypeCheck
Definition:XCOFFObjectFile.h:236
llvm::object::LoaderSectionSymbolEntry64::StorageClass
XCOFF::StorageClass StorageClass
Definition:XCOFFObjectFile.h:234
llvm::object::LoaderSectionSymbolEntry64::SectionNumber
support::big16_t SectionNumber
Definition:XCOFFObjectFile.h:232
llvm::object::LoaderSectionSymbolEntry64::Value
support::ubig64_t Value
Definition:XCOFFObjectFile.h:230
llvm::object::LoaderSectionSymbolEntry64::Offset
support::ubig32_t Offset
Definition:XCOFFObjectFile.h:231
llvm::object::LoaderSectionSymbolEntry64::ImportFileID
support::ubig32_t ImportFileID
Definition:XCOFFObjectFile.h:235
llvm::object::XCOFFAuxiliaryHeader32
Definition:XCOFFObjectFile.h:79
llvm::object::XCOFFAuxiliaryHeader32::MaxAlignOfText
support::ubig16_t MaxAlignOfText
Definition:XCOFFObjectFile.h:101
llvm::object::XCOFFAuxiliaryHeader32::MaxStackSize
support::ubig32_t MaxStackSize
If the value is 0, the system default maximum stack size is used.
Definition:XCOFFObjectFile.h:106
llvm::object::XCOFFAuxiliaryHeader32::ModuleType
support::ubig16_t ModuleType
Definition:XCOFFObjectFile.h:103
llvm::object::XCOFFAuxiliaryHeader32::DataStartAddr
support::ubig32_t DataStartAddr
Definition:XCOFFObjectFile.h:93
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfText
support::ubig16_t SecNumOfText
Definition:XCOFFObjectFile.h:96
llvm::object::XCOFFAuxiliaryHeader32::AuxMagic
support::ubig16_t AuxMagic
If the value of the o_vstamp field is greater than 1, the o_mflags field is reserved for future use a...
Definition:XCOFFObjectFile.h:81
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfTBSS
support::ubig16_t SecNumOfTBSS
Definition:XCOFFObjectFile.h:123
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfData
support::ubig16_t SecNumOfData
Definition:XCOFFObjectFile.h:97
llvm::object::XCOFFAuxiliaryHeader32::TextPageSize
uint8_t TextPageSize
Specifies the size of pages for the exec text.
Definition:XCOFFObjectFile.h:115
llvm::object::XCOFFAuxiliaryHeader32::StackPageSize
uint8_t StackPageSize
Specifies the size of pages for the stack.
Definition:XCOFFObjectFile.h:119
llvm::object::XCOFFAuxiliaryHeader32::ReservedForDebugger
support::ubig32_t ReservedForDebugger
This field should contain 0.
Definition:XCOFFObjectFile.h:111
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfBSS
support::ubig16_t SecNumOfBSS
Definition:XCOFFObjectFile.h:100
llvm::object::XCOFFAuxiliaryHeader32::EntryPointAddr
support::ubig32_t EntryPointAddr
Definition:XCOFFObjectFile.h:91
llvm::object::XCOFFAuxiliaryHeader32::CpuFlag
uint8_t CpuFlag
Definition:XCOFFObjectFile.h:104
llvm::object::XCOFFAuxiliaryHeader32::TextStartAddr
support::ubig32_t TextStartAddr
Definition:XCOFFObjectFile.h:92
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfEntryPoint
support::ubig16_t SecNumOfEntryPoint
Definition:XCOFFObjectFile.h:95
llvm::object::XCOFFAuxiliaryHeader32::InitDataSize
support::ubig32_t InitDataSize
Definition:XCOFFObjectFile.h:89
llvm::object::XCOFFAuxiliaryHeader32::Version
support::ubig16_t Version
The valid values are 1 and 2.
Definition:XCOFFObjectFile.h:85
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfTOC
support::ubig16_t SecNumOfTOC
Definition:XCOFFObjectFile.h:98
llvm::object::XCOFFAuxiliaryHeader32::MaxAlignOfData
support::ubig16_t MaxAlignOfData
Definition:XCOFFObjectFile.h:102
llvm::object::XCOFFAuxiliaryHeader32::TOCAnchorAddr
support::ubig32_t TOCAnchorAddr
Definition:XCOFFObjectFile.h:94
llvm::object::XCOFFAuxiliaryHeader32::TextSize
support::ubig32_t TextSize
Definition:XCOFFObjectFile.h:88
llvm::object::XCOFFAuxiliaryHeader32::BssDataSize
support::ubig32_t BssDataSize
Definition:XCOFFObjectFile.h:90
llvm::object::XCOFFAuxiliaryHeader32::FlagAndTDataAlignment
uint8_t FlagAndTDataAlignment
Definition:XCOFFObjectFile.h:121
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfTData
support::ubig16_t SecNumOfTData
Definition:XCOFFObjectFile.h:122
llvm::object::XCOFFAuxiliaryHeader32::CpuType
uint8_t CpuType
Definition:XCOFFObjectFile.h:105
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfLoader
support::ubig16_t SecNumOfLoader
Definition:XCOFFObjectFile.h:99
llvm::object::XCOFFAuxiliaryHeader32::DataPageSize
uint8_t DataPageSize
Specifies the size of pages for the exec data.
Definition:XCOFFObjectFile.h:117
llvm::object::XCOFFAuxiliaryHeader32::MaxDataSize
support::ubig32_t MaxDataSize
If the value is 0, the system default maximum data size is used.
Definition:XCOFFObjectFile.h:108
llvm::object::XCOFFAuxiliaryHeader64
Definition:XCOFFObjectFile.h:126
llvm::object::XCOFFAuxiliaryHeader64::EntryPointAddr
support::ubig64_t EntryPointAddr
Definition:XCOFFObjectFile.h:151
llvm::object::XCOFFAuxiliaryHeader64::TextStartAddr
support::ubig64_t TextStartAddr
Definition:XCOFFObjectFile.h:130
llvm::object::XCOFFAuxiliaryHeader64::XCOFF64Flag
support::ubig16_t XCOFF64Flag
Definition:XCOFFObjectFile.h:156
llvm::object::XCOFFAuxiliaryHeader64::AuxMagic
support::ubig16_t AuxMagic
Definition:XCOFFObjectFile.h:127
llvm::object::XCOFFAuxiliaryHeader64::TextPageSize
uint8_t TextPageSize
Definition:XCOFFObjectFile.h:144
llvm::object::XCOFFAuxiliaryHeader64::TextSize
support::ubig64_t TextSize
Definition:XCOFFObjectFile.h:148
llvm::object::XCOFFAuxiliaryHeader64::MaxDataSize
support::ubig64_t MaxDataSize
Definition:XCOFFObjectFile.h:153
llvm::object::XCOFFAuxiliaryHeader64::DataPageSize
uint8_t DataPageSize
Definition:XCOFFObjectFile.h:145
llvm::object::XCOFFAuxiliaryHeader64::InitDataSize
support::ubig64_t InitDataSize
Definition:XCOFFObjectFile.h:149
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfText
support::ubig16_t SecNumOfText
Definition:XCOFFObjectFile.h:134
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfEntryPoint
support::ubig16_t SecNumOfEntryPoint
Definition:XCOFFObjectFile.h:133
llvm::object::XCOFFAuxiliaryHeader64::BssDataSize
support::ubig64_t BssDataSize
Definition:XCOFFObjectFile.h:150
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfTBSS
support::ubig16_t SecNumOfTBSS
Definition:XCOFFObjectFile.h:155
llvm::object::XCOFFAuxiliaryHeader64::DataStartAddr
support::ubig64_t DataStartAddr
Definition:XCOFFObjectFile.h:131
llvm::object::XCOFFAuxiliaryHeader64::CpuType
uint8_t CpuType
Definition:XCOFFObjectFile.h:143
llvm::object::XCOFFAuxiliaryHeader64::MaxAlignOfData
support::ubig16_t MaxAlignOfData
Definition:XCOFFObjectFile.h:140
llvm::object::XCOFFAuxiliaryHeader64::ReservedForDebugger
support::ubig32_t ReservedForDebugger
Definition:XCOFFObjectFile.h:129
llvm::object::XCOFFAuxiliaryHeader64::Version
support::ubig16_t Version
Definition:XCOFFObjectFile.h:128
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfTOC
support::ubig16_t SecNumOfTOC
Definition:XCOFFObjectFile.h:136
llvm::object::XCOFFAuxiliaryHeader64::MaxAlignOfText
support::ubig16_t MaxAlignOfText
Definition:XCOFFObjectFile.h:139
llvm::object::XCOFFAuxiliaryHeader64::StackPageSize
uint8_t StackPageSize
Definition:XCOFFObjectFile.h:146
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfTData
support::ubig16_t SecNumOfTData
Definition:XCOFFObjectFile.h:154
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfLoader
support::ubig16_t SecNumOfLoader
Definition:XCOFFObjectFile.h:137
llvm::object::XCOFFAuxiliaryHeader64::FlagAndTDataAlignment
uint8_t FlagAndTDataAlignment
Definition:XCOFFObjectFile.h:147
llvm::object::XCOFFAuxiliaryHeader64::CpuFlag
uint8_t CpuFlag
Definition:XCOFFObjectFile.h:142
llvm::object::XCOFFAuxiliaryHeader64::ModuleType
support::ubig16_t ModuleType
Definition:XCOFFObjectFile.h:141
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfData
support::ubig16_t SecNumOfData
Definition:XCOFFObjectFile.h:135
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfBSS
support::ubig16_t SecNumOfBSS
Definition:XCOFFObjectFile.h:138
llvm::object::XCOFFAuxiliaryHeader64::TOCAnchorAddr
support::ubig64_t TOCAnchorAddr
Definition:XCOFFObjectFile.h:132
llvm::object::XCOFFAuxiliaryHeader64::MaxStackSize
support::ubig64_t MaxStackSize
Definition:XCOFFObjectFile.h:152
llvm::object::XCOFFAuxiliaryHeader
Definition:XCOFFObjectFile.h:58
llvm::object::XCOFFAuxiliaryHeader::getFlag
uint8_t getFlag() const
Definition:XCOFFObjectFile.h:63
llvm::object::XCOFFAuxiliaryHeader::getEntryPointAddr
uint64_t getEntryPointAddr() const
Definition:XCOFFObjectFile.h:74
llvm::object::XCOFFAuxiliaryHeader::AuxiHeaderTDataAlignmentMask
static constexpr uint8_t AuxiHeaderTDataAlignmentMask
Definition:XCOFFObjectFile.h:60
llvm::object::XCOFFAuxiliaryHeader::getVersion
uint16_t getVersion() const
Definition:XCOFFObjectFile.h:73
llvm::object::XCOFFAuxiliaryHeader::AuxiHeaderFlagMask
static constexpr uint8_t AuxiHeaderFlagMask
Definition:XCOFFObjectFile.h:59
llvm::object::XCOFFAuxiliaryHeader::getTDataAlignment
uint8_t getTDataAlignment() const
Definition:XCOFFObjectFile.h:68
llvm::object::XCOFFBlockAuxEnt32
Definition:XCOFFObjectFile.h:479
llvm::object::XCOFFBlockAuxEnt32::ReservedZeros1
uint8_t ReservedZeros1[2]
Definition:XCOFFObjectFile.h:480
llvm::object::XCOFFBlockAuxEnt32::LineNumLo
support::ubig16_t LineNumLo
Definition:XCOFFObjectFile.h:482
llvm::object::XCOFFBlockAuxEnt32::LineNumHi
support::ubig16_t LineNumHi
Definition:XCOFFObjectFile.h:481
llvm::object::XCOFFBlockAuxEnt32::ReservedZeros2
uint8_t ReservedZeros2[12]
Definition:XCOFFObjectFile.h:483
llvm::object::XCOFFBlockAuxEnt64
Definition:XCOFFObjectFile.h:486
llvm::object::XCOFFBlockAuxEnt64::AuxType
XCOFF::SymbolAuxType AuxType
Definition:XCOFFObjectFile.h:489
llvm::object::XCOFFBlockAuxEnt64::Pad
uint8_t Pad[13]
Definition:XCOFFObjectFile.h:488
llvm::object::XCOFFBlockAuxEnt64::LineNum
support::ubig32_t LineNum
Definition:XCOFFObjectFile.h:487
llvm::object::XCOFFCsectAuxEnt32
Definition:XCOFFObjectFile.h:329
llvm::object::XCOFFCsectAuxEnt32::TypeChkSectNum
support::ubig16_t TypeChkSectNum
Definition:XCOFFObjectFile.h:332
llvm::object::XCOFFCsectAuxEnt32::StabSectNum
support::ubig16_t StabSectNum
Definition:XCOFFObjectFile.h:336
llvm::object::XCOFFCsectAuxEnt32::ParameterHashIndex
support::ubig32_t ParameterHashIndex
Definition:XCOFFObjectFile.h:331
llvm::object::XCOFFCsectAuxEnt32::SectionOrLength
support::ubig32_t SectionOrLength
Definition:XCOFFObjectFile.h:330
llvm::object::XCOFFCsectAuxEnt32::StabInfoIndex
support::ubig32_t StabInfoIndex
Definition:XCOFFObjectFile.h:335
llvm::object::XCOFFCsectAuxEnt32::StorageMappingClass
XCOFF::StorageMappingClass StorageMappingClass
Definition:XCOFFObjectFile.h:334
llvm::object::XCOFFCsectAuxEnt32::SymbolAlignmentAndType
uint8_t SymbolAlignmentAndType
Definition:XCOFFObjectFile.h:333
llvm::object::XCOFFCsectAuxEnt64
Definition:XCOFFObjectFile.h:339
llvm::object::XCOFFCsectAuxEnt64::StorageMappingClass
XCOFF::StorageMappingClass StorageMappingClass
Definition:XCOFFObjectFile.h:344
llvm::object::XCOFFCsectAuxEnt64::SectionOrLengthLowByte
support::ubig32_t SectionOrLengthLowByte
Definition:XCOFFObjectFile.h:340
llvm::object::XCOFFCsectAuxEnt64::TypeChkSectNum
support::ubig16_t TypeChkSectNum
Definition:XCOFFObjectFile.h:342
llvm::object::XCOFFCsectAuxEnt64::SectionOrLengthHighByte
support::ubig32_t SectionOrLengthHighByte
Definition:XCOFFObjectFile.h:345
llvm::object::XCOFFCsectAuxEnt64::ParameterHashIndex
support::ubig32_t ParameterHashIndex
Definition:XCOFFObjectFile.h:341
llvm::object::XCOFFCsectAuxEnt64::SymbolAlignmentAndType
uint8_t SymbolAlignmentAndType
Definition:XCOFFObjectFile.h:343
llvm::object::XCOFFCsectAuxEnt64::Pad
uint8_t Pad
Definition:XCOFFObjectFile.h:346
llvm::object::XCOFFCsectAuxEnt64::AuxType
XCOFF::SymbolAuxType AuxType
Definition:XCOFFObjectFile.h:347
llvm::object::XCOFFExceptionAuxEnt
Definition:XCOFFObjectFile.h:471
llvm::object::XCOFFExceptionAuxEnt::Pad
uint8_t Pad
Definition:XCOFFObjectFile.h:475
llvm::object::XCOFFExceptionAuxEnt::SizeOfFunction
support::ubig32_t SizeOfFunction
Definition:XCOFFObjectFile.h:473
llvm::object::XCOFFExceptionAuxEnt::SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
Definition:XCOFFObjectFile.h:474
llvm::object::XCOFFExceptionAuxEnt::OffsetToExceptionTbl
support::ubig64_t OffsetToExceptionTbl
Definition:XCOFFObjectFile.h:472
llvm::object::XCOFFExceptionAuxEnt::AuxType
XCOFF::SymbolAuxType AuxType
Definition:XCOFFObjectFile.h:476
llvm::object::XCOFFFileAuxEnt::NameInStrTblType
Definition:XCOFFObjectFile.h:434
llvm::object::XCOFFFileAuxEnt::NameInStrTblType::Magic
support::big32_t Magic
Definition:XCOFFObjectFile.h:435
llvm::object::XCOFFFileAuxEnt::NameInStrTblType::Offset
support::ubig32_t Offset
Definition:XCOFFObjectFile.h:436
llvm::object::XCOFFFileAuxEnt
Definition:XCOFFObjectFile.h:433
llvm::object::XCOFFFileAuxEnt::ReservedZeros
uint8_t ReservedZeros[2]
Definition:XCOFFObjectFile.h:444
llvm::object::XCOFFFileAuxEnt::NameInStrTbl
NameInStrTblType NameInStrTbl
Definition:XCOFFObjectFile.h:441
llvm::object::XCOFFFileAuxEnt::AuxType
XCOFF::SymbolAuxType AuxType
Definition:XCOFFObjectFile.h:445
llvm::object::XCOFFFileAuxEnt::Type
XCOFF::CFileStringType Type
Definition:XCOFFObjectFile.h:443
llvm::object::XCOFFFileAuxEnt::Name
char Name[XCOFF::NameSize+XCOFF::FileNamePadSize]
Definition:XCOFFObjectFile.h:440
llvm::object::XCOFFFileHeader32
Definition:XCOFFObjectFile.h:30
llvm::object::XCOFFFileHeader32::Magic
support::ubig16_t Magic
Definition:XCOFFObjectFile.h:31
llvm::object::XCOFFFileHeader32::NumberOfSymTableEntries
support::big32_t NumberOfSymTableEntries
Definition:XCOFFObjectFile.h:39
llvm::object::XCOFFFileHeader32::TimeStamp
support::big32_t TimeStamp
Definition:XCOFFObjectFile.h:36
llvm::object::XCOFFFileHeader32::AuxHeaderSize
support::ubig16_t AuxHeaderSize
Definition:XCOFFObjectFile.h:40
llvm::object::XCOFFFileHeader32::NumberOfSections
support::ubig16_t NumberOfSections
Definition:XCOFFObjectFile.h:32
llvm::object::XCOFFFileHeader32::Flags
support::ubig16_t Flags
Definition:XCOFFObjectFile.h:41
llvm::object::XCOFFFileHeader32::SymbolTableOffset
support::ubig32_t SymbolTableOffset
Definition:XCOFFObjectFile.h:38
llvm::object::XCOFFFileHeader64
Definition:XCOFFObjectFile.h:44
llvm::object::XCOFFFileHeader64::TimeStamp
support::big32_t TimeStamp
Definition:XCOFFObjectFile.h:50
llvm::object::XCOFFFileHeader64::Flags
support::ubig16_t Flags
Definition:XCOFFObjectFile.h:54
llvm::object::XCOFFFileHeader64::AuxHeaderSize
support::ubig16_t AuxHeaderSize
Definition:XCOFFObjectFile.h:53
llvm::object::XCOFFFileHeader64::SymbolTableOffset
support::ubig64_t SymbolTableOffset
Definition:XCOFFObjectFile.h:52
llvm::object::XCOFFFileHeader64::NumberOfSymTableEntries
support::ubig32_t NumberOfSymTableEntries
Definition:XCOFFObjectFile.h:55
llvm::object::XCOFFFileHeader64::NumberOfSections
support::ubig16_t NumberOfSections
Definition:XCOFFObjectFile.h:46
llvm::object::XCOFFFileHeader64::Magic
support::ubig16_t Magic
Definition:XCOFFObjectFile.h:45
llvm::object::XCOFFFunctionAuxEnt32
Definition:XCOFFObjectFile.h:455
llvm::object::XCOFFFunctionAuxEnt32::Pad
uint8_t Pad[2]
Definition:XCOFFObjectFile.h:460
llvm::object::XCOFFFunctionAuxEnt32::SizeOfFunction
support::ubig32_t SizeOfFunction
Definition:XCOFFObjectFile.h:457
llvm::object::XCOFFFunctionAuxEnt32::PtrToLineNum
support::ubig32_t PtrToLineNum
Definition:XCOFFObjectFile.h:458
llvm::object::XCOFFFunctionAuxEnt32::OffsetToExceptionTbl
support::ubig32_t OffsetToExceptionTbl
Definition:XCOFFObjectFile.h:456
llvm::object::XCOFFFunctionAuxEnt32::SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
Definition:XCOFFObjectFile.h:459
llvm::object::XCOFFFunctionAuxEnt64
Definition:XCOFFObjectFile.h:463
llvm::object::XCOFFFunctionAuxEnt64::Pad
uint8_t Pad
Definition:XCOFFObjectFile.h:467
llvm::object::XCOFFFunctionAuxEnt64::SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
Definition:XCOFFObjectFile.h:466
llvm::object::XCOFFFunctionAuxEnt64::PtrToLineNum
support::ubig64_t PtrToLineNum
Definition:XCOFFObjectFile.h:464
llvm::object::XCOFFFunctionAuxEnt64::AuxType
XCOFF::SymbolAuxType AuxType
Definition:XCOFFObjectFile.h:468
llvm::object::XCOFFFunctionAuxEnt64::SizeOfFunction
support::ubig32_t SizeOfFunction
Definition:XCOFFObjectFile.h:465
llvm::object::XCOFFRelocation32
Definition:XCOFFObjectFile.h:527
llvm::object::XCOFFRelocation64
Definition:XCOFFObjectFile.h:528
llvm::object::XCOFFRelocation
Definition:XCOFFObjectFile.h:506
llvm::object::XCOFFRelocation::Type
XCOFF::RelocationType Type
Definition:XCOFFObjectFile.h:514
llvm::object::XCOFFRelocation::VirtualAddress
AddressType VirtualAddress
Definition:XCOFFObjectFile.h:508
llvm::object::XCOFFRelocation::isFixupIndicated
bool isFixupIndicated() const
Definition:XCOFFObjectFile.cpp:85
llvm::object::XCOFFRelocation::SymbolIndex
support::ubig32_t SymbolIndex
Definition:XCOFFObjectFile.h:509
llvm::object::XCOFFRelocation::getRelocatedLength
uint8_t getRelocatedLength() const
Definition:XCOFFObjectFile.cpp:90
llvm::object::XCOFFRelocation::isRelocationSigned
bool isRelocationSigned() const
Definition:XCOFFObjectFile.cpp:80
llvm::object::XCOFFRelocation::Info
uint8_t Info
Definition:XCOFFObjectFile.h:512
llvm::object::XCOFFSectAuxEntForDWARF32
Definition:XCOFFObjectFile.h:492
llvm::object::XCOFFSectAuxEntForDWARF32::Pad1
uint8_t Pad1[4]
Definition:XCOFFObjectFile.h:494
llvm::object::XCOFFSectAuxEntForDWARF32::LengthOfSectionPortion
support::ubig32_t LengthOfSectionPortion
Definition:XCOFFObjectFile.h:493
llvm::object::XCOFFSectAuxEntForDWARF32::NumberOfRelocEnt
support::ubig32_t NumberOfRelocEnt
Definition:XCOFFObjectFile.h:495
llvm::object::XCOFFSectAuxEntForDWARF32::Pad2
uint8_t Pad2[6]
Definition:XCOFFObjectFile.h:496
llvm::object::XCOFFSectAuxEntForDWARF64
Definition:XCOFFObjectFile.h:499
llvm::object::XCOFFSectAuxEntForDWARF64::Pad
uint8_t Pad
Definition:XCOFFObjectFile.h:502
llvm::object::XCOFFSectAuxEntForDWARF64::AuxType
XCOFF::SymbolAuxType AuxType
Definition:XCOFFObjectFile.h:503
llvm::object::XCOFFSectAuxEntForDWARF64::LengthOfSectionPortion
support::ubig64_t LengthOfSectionPortion
Definition:XCOFFObjectFile.h:500
llvm::object::XCOFFSectAuxEntForDWARF64::NumberOfRelocEnt
support::ubig64_t NumberOfRelocEnt
Definition:XCOFFObjectFile.h:501
llvm::object::XCOFFSectAuxEntForStat
Definition:XCOFFObjectFile.h:448
llvm::object::XCOFFSectAuxEntForStat::Pad
uint8_t Pad[10]
Definition:XCOFFObjectFile.h:452
llvm::object::XCOFFSectAuxEntForStat::SectionLength
support::ubig32_t SectionLength
Definition:XCOFFObjectFile.h:449
llvm::object::XCOFFSectAuxEntForStat::NumberOfLineNum
support::ubig16_t NumberOfLineNum
Definition:XCOFFObjectFile.h:451
llvm::object::XCOFFSectAuxEntForStat::NumberOfRelocEnt
support::ubig16_t NumberOfRelocEnt
Definition:XCOFFObjectFile.h:450
llvm::object::XCOFFSectionHeader32
Definition:XCOFFObjectFile.h:182
llvm::object::XCOFFSectionHeader32::NumberOfRelocations
support::ubig16_t NumberOfRelocations
Definition:XCOFFObjectFile.h:190
llvm::object::XCOFFSectionHeader32::FileOffsetToRawData
support::ubig32_t FileOffsetToRawData
Definition:XCOFFObjectFile.h:187
llvm::object::XCOFFSectionHeader32::SectionSize
support::ubig32_t SectionSize
Definition:XCOFFObjectFile.h:186
llvm::object::XCOFFSectionHeader32::FileOffsetToLineNumberInfo
support::ubig32_t FileOffsetToLineNumberInfo
Definition:XCOFFObjectFile.h:189
llvm::object::XCOFFSectionHeader32::NumberOfLineNumbers
support::ubig16_t NumberOfLineNumbers
Definition:XCOFFObjectFile.h:191
llvm::object::XCOFFSectionHeader32::VirtualAddress
support::ubig32_t VirtualAddress
Definition:XCOFFObjectFile.h:185
llvm::object::XCOFFSectionHeader32::FileOffsetToRelocationInfo
support::ubig32_t FileOffsetToRelocationInfo
Definition:XCOFFObjectFile.h:188
llvm::object::XCOFFSectionHeader32::PhysicalAddress
support::ubig32_t PhysicalAddress
Definition:XCOFFObjectFile.h:184
llvm::object::XCOFFSectionHeader32::Flags
support::big32_t Flags
Definition:XCOFFObjectFile.h:192
llvm::object::XCOFFSectionHeader64
Definition:XCOFFObjectFile.h:195
llvm::object::XCOFFSectionHeader64::VirtualAddress
support::ubig64_t VirtualAddress
Definition:XCOFFObjectFile.h:198
llvm::object::XCOFFSectionHeader64::NumberOfRelocations
support::ubig32_t NumberOfRelocations
Definition:XCOFFObjectFile.h:203
llvm::object::XCOFFSectionHeader64::SectionSize
support::ubig64_t SectionSize
Definition:XCOFFObjectFile.h:199
llvm::object::XCOFFSectionHeader64::Flags
support::big32_t Flags
Definition:XCOFFObjectFile.h:205
llvm::object::XCOFFSectionHeader64::FileOffsetToRawData
support::big64_t FileOffsetToRawData
Definition:XCOFFObjectFile.h:200
llvm::object::XCOFFSectionHeader64::NumberOfLineNumbers
support::ubig32_t NumberOfLineNumbers
Definition:XCOFFObjectFile.h:204
llvm::object::XCOFFSectionHeader64::FileOffsetToRelocationInfo
support::big64_t FileOffsetToRelocationInfo
Definition:XCOFFObjectFile.h:201
llvm::object::XCOFFSectionHeader64::FileOffsetToLineNumberInfo
support::big64_t FileOffsetToLineNumberInfo
Definition:XCOFFObjectFile.h:202
llvm::object::XCOFFSectionHeader64::PhysicalAddress
support::ubig64_t PhysicalAddress
Definition:XCOFFObjectFile.h:197
llvm::object::XCOFFSectionHeader
Definition:XCOFFObjectFile.h:159
llvm::object::XCOFFSectionHeader::SectionFlagsReservedMask
static constexpr unsigned SectionFlagsReservedMask
Definition:XCOFFObjectFile.h:162
llvm::object::XCOFFSectionHeader::isReservedSectionType
bool isReservedSectionType() const
Definition:XCOFFObjectFile.cpp:75
llvm::object::XCOFFSectionHeader::getName
StringRef getName() const
Definition:XCOFFObjectFile.cpp:58
llvm::object::XCOFFSectionHeader::getSectionSubtype
uint32_t getSectionSubtype() const
Definition:XCOFFObjectFile.cpp:69
llvm::object::XCOFFSectionHeader::SectionFlagsTypeMask
static constexpr unsigned SectionFlagsTypeMask
Definition:XCOFFObjectFile.h:167
llvm::object::XCOFFSectionHeader::getSectionType
uint16_t getSectionType() const
Definition:XCOFFObjectFile.cpp:63
llvm::object::XCOFFStringTable
Definition:XCOFFObjectFile.h:324
llvm::object::XCOFFStringTable::Data
const char * Data
Definition:XCOFFObjectFile.h:326
llvm::object::XCOFFStringTable::Size
uint32_t Size
Definition:XCOFFObjectFile.h:325
llvm::object::XCOFFSymbolEntry32::NameInStrTblType
Definition:XCOFFObjectFile.h:743
llvm::object::XCOFFSymbolEntry32::NameInStrTblType::Magic
support::big32_t Magic
Definition:XCOFFObjectFile.h:744
llvm::object::XCOFFSymbolEntry32::NameInStrTblType::Offset
support::ubig32_t Offset
Definition:XCOFFObjectFile.h:745
llvm::object::XCOFFSymbolEntry32
Definition:XCOFFObjectFile.h:742
llvm::object::XCOFFSymbolEntry32::NumberOfAuxEntries
uint8_t NumberOfAuxEntries
Definition:XCOFFObjectFile.h:762
llvm::object::XCOFFSymbolEntry32::SymbolType
support::ubig16_t SymbolType
Definition:XCOFFObjectFile.h:757
llvm::object::XCOFFSymbolEntry32::Value
support::ubig32_t Value
Definition:XCOFFObjectFile.h:753
llvm::object::XCOFFSymbolEntry32::CFileLanguageIdAndTypeId
CFileLanguageIdAndTypeIdType CFileLanguageIdAndTypeId
Definition:XCOFFObjectFile.h:758
llvm::object::XCOFFSymbolEntry32::StorageClass
XCOFF::StorageClass StorageClass
Definition:XCOFFObjectFile.h:761
llvm::object::XCOFFSymbolEntry32::NameInStrTbl
NameInStrTblType NameInStrTbl
Definition:XCOFFObjectFile.h:750
llvm::object::XCOFFSymbolEntry32::SymbolName
char SymbolName[XCOFF::NameSize]
Definition:XCOFFObjectFile.h:749
llvm::object::XCOFFSymbolEntry32::SectionNumber
support::big16_t SectionNumber
Definition:XCOFFObjectFile.h:754
llvm::object::XCOFFSymbolEntry64
Definition:XCOFFObjectFile.h:765
llvm::object::XCOFFSymbolEntry64::SectionNumber
support::big16_t SectionNumber
Definition:XCOFFObjectFile.h:768
llvm::object::XCOFFSymbolEntry64::Offset
support::ubig32_t Offset
Definition:XCOFFObjectFile.h:767
llvm::object::XCOFFSymbolEntry64::Value
support::ubig64_t Value
Definition:XCOFFObjectFile.h:766
llvm::object::XCOFFSymbolEntry64::NumberOfAuxEntries
uint8_t NumberOfAuxEntries
Definition:XCOFFObjectFile.h:776
llvm::object::XCOFFSymbolEntry64::SymbolType
support::ubig16_t SymbolType
Definition:XCOFFObjectFile.h:771
llvm::object::XCOFFSymbolEntry64::CFileLanguageIdAndTypeId
CFileLanguageIdAndTypeIdType CFileLanguageIdAndTypeId
Definition:XCOFFObjectFile.h:772
llvm::object::XCOFFSymbolEntry64::StorageClass
XCOFF::StorageClass StorageClass
Definition:XCOFFObjectFile.h:775
llvm::support::detail::packed_endian_specific_integral
Definition:Endian.h:217
llvm::object::DataRefImpl
Definition:SymbolicFile.h:35
llvm::object::DataRefImpl::p
uintptr_t p
Definition:SymbolicFile.h:41

Generated on Thu Jul 17 2025 10:10:31 for LLVM by doxygen 1.9.6
[8]ページ先頭

©2009-2025 Movatter.jp