LLVM  16.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"
19 #include "llvm/Object/ObjectFile.h"
20 #include "llvm/Support/Endian.h"
21 #include <limits>
22 
23 namespace llvm {
24 namespace object {
25 
29 
30  // Unix time value, value of 0 indicates no timestamp.
31  // Negative values are reserved.
33 
34  support::ubig32_t SymbolTableOffset; // File offset to symbol table.
38 };
39 
43 
44  // Unix time value, value of 0 indicates no timestamp.
45  // Negative values are reserved.
47 
48  support::ubig64_t SymbolTableOffset; // File offset to symbol table.
52 };
53 
54 template <typename T> struct XCOFFAuxiliaryHeader {
55  static constexpr uint8_t AuxiHeaderFlagMask = 0xF0;
56  static constexpr uint8_t AuxiHeaderTDataAlignmentMask = 0x0F;
57 
58 public:
59  uint8_t getFlag() const {
60  return static_cast<const T *>(this)->FlagAndTDataAlignment &
62  }
63 
64  uint8_t getTDataAlignment() const {
65  return static_cast<const T *>(this)->FlagAndTDataAlignment &
67  }
68 
69  uint16_t getVersion() const { return static_cast<const T *>(this)->Version; }
70 };
71 
72 struct XCOFFAuxiliaryHeader32 : XCOFFAuxiliaryHeader<XCOFFAuxiliaryHeader32> {
74  AuxMagic; ///< If the value of the o_vstamp field is greater than 1, the
75  ///< o_mflags field is reserved for future use and it should
76  ///< contain 0. Otherwise, this field is not used.
78  Version; ///< The valid values are 1 and 2. When the o_vstamp field is 2
79  ///< in an XCOFF32 file, the new interpretation of the n_type
80  ///< field in the symbol table entry is used.
97  uint8_t CpuFlag;
98  uint8_t CpuType;
99  support::ubig32_t MaxStackSize; ///< If the value is 0, the system default
100  ///< maximum stack size is used.
101  support::ubig32_t MaxDataSize; ///< If the value is 0, the system default
102  ///< maximum data size is used.
104  ReservedForDebugger; ///< This field should contain 0. When a loaded
105  ///< program is being debugged, the memory image of
106  ///< this field may be modified by a debugger to
107  ///< insert a trap instruction.
108  uint8_t TextPageSize; ///< Specifies the size of pages for the exec text. The
109  ///< default value is 0 (system-selected page size).
110  uint8_t DataPageSize; ///< Specifies the size of pages for the exec data. The
111  ///< default value is 0 (system-selected page size).
112  uint8_t StackPageSize; ///< Specifies the size of pages for the stack. The
113  ///< default value is 0 (system-selected page size).
117 };
118 
119 struct XCOFFAuxiliaryHeader64 : XCOFFAuxiliaryHeader<XCOFFAuxiliaryHeader64> {
135  uint8_t CpuFlag;
136  uint8_t CpuType;
137  uint8_t TextPageSize;
138  uint8_t DataPageSize;
139  uint8_t StackPageSize;
150 };
151 
152 template <typename T> struct XCOFFSectionHeader {
153  // Least significant 3 bits are reserved.
154  static constexpr unsigned SectionFlagsReservedMask = 0x7;
155 
156  // The low order 16 bits of section flags denotes the section type.
157  static constexpr unsigned SectionFlagsTypeMask = 0xffffu;
158 
159 public:
160  StringRef getName() const;
161  uint16_t getSectionType() const;
162  bool isReservedSectionType() const;
163 };
164 
165 // Explicit extern template declarations.
166 struct XCOFFSectionHeader32;
167 struct XCOFFSectionHeader64;
168 extern template struct XCOFFSectionHeader<XCOFFSectionHeader32>;
169 extern template struct XCOFFSectionHeader<XCOFFSectionHeader64>;
170 
182 };
183 
195  char Padding[4];
196 };
197 
207 };
208 
219  char Padding[16];
221 };
222 
223 template <typename AddressType> struct ExceptionSectionEntry {
224  union {
226  AddressType TrapInstAddr;
227  };
228  uint8_t LangId;
229  uint8_t Reason;
230 
232  assert(Reason == 0 && "Get symbol table index of the function only when "
233  "the e_reason field is 0.");
234  return SymbolIdx;
235  }
236 
238  assert(Reason != 0 && "Zero is not a valid trap exception reason code.");
239  return TrapInstAddr;
240  }
241  uint8_t getLangID() const { return LangId; }
242  uint8_t getReason() const { return Reason; }
243 };
244 
247 
248 // Explicit extern template declarations.
249 extern template struct ExceptionSectionEntry<support::ubig32_t>;
250 extern template struct ExceptionSectionEntry<support::ubig64_t>;
251 
254  const char *Data;
255 };
256 
265 };
266 
274  uint8_t Pad;
276 };
277 
279 public:
280  static constexpr uint8_t SymbolTypeMask = 0x07;
281  static constexpr uint8_t SymbolAlignmentMask = 0xF8;
282  static constexpr size_t SymbolAlignmentBitOffset = 3;
283 
284  XCOFFCsectAuxRef(const XCOFFCsectAuxEnt32 *Entry32) : Entry32(Entry32) {}
285  XCOFFCsectAuxRef(const XCOFFCsectAuxEnt64 *Entry64) : Entry64(Entry64) {}
286 
287  // For getSectionOrLength(),
288  // If the symbol type is XTY_SD or XTY_CM, the csect length.
289  // If the symbol type is XTY_LD, the symbol table
290  // index of the containing csect.
291  // If the symbol type is XTY_ER, 0.
293  return Entry32 ? getSectionOrLength32() : getSectionOrLength64();
294  }
295 
297  assert(Entry32 && "32-bit interface called on 64-bit object file.");
298  return Entry32->SectionOrLength;
299  }
300 
302  assert(Entry64 && "64-bit interface called on 32-bit object file.");
303  return (static_cast<uint64_t>(Entry64->SectionOrLengthHighByte) << 32) |
304  Entry64->SectionOrLengthLowByte;
305  }
306 
307 #define GETVALUE(X) Entry32 ? Entry32->X : Entry64->X
308 
310  return GETVALUE(ParameterHashIndex);
311  }
312 
313  uint16_t getTypeChkSectNum() const { return GETVALUE(TypeChkSectNum); }
314 
317  }
318 
319  uintptr_t getEntryAddress() const {
320  return Entry32 ? reinterpret_cast<uintptr_t>(Entry32)
321  : reinterpret_cast<uintptr_t>(Entry64);
322  }
323 
325  return (getSymbolAlignmentAndType() & SymbolAlignmentMask) >>
326  SymbolAlignmentBitOffset;
327  }
328 
329  uint8_t getSymbolType() const {
330  return getSymbolAlignmentAndType() & SymbolTypeMask;
331  }
332 
333  bool isLabel() const { return getSymbolType() == XCOFF::XTY_LD; }
334 
336  assert(Entry32 && "32-bit interface called on 64-bit object file.");
337  return Entry32->StabInfoIndex;
338  }
339 
341  assert(Entry32 && "32-bit interface called on 64-bit object file.");
342  return Entry32->StabSectNum;
343  }
344 
346  assert(Entry64 && "64-bit interface called on 32-bit object file.");
347  return Entry64->AuxType;
348  }
349 
350 private:
351  uint8_t getSymbolAlignmentAndType() const {
352  return GETVALUE(SymbolAlignmentAndType);
353  }
354 
355 #undef GETVALUE
356 
357  const XCOFFCsectAuxEnt32 *Entry32 = nullptr;
358  const XCOFFCsectAuxEnt64 *Entry64 = nullptr;
359 };
360 
362  typedef struct {
363  support::big32_t Magic; // Zero indicates name in string table.
365  char NamePad[XCOFF::FileNamePadSize];
367  union {
370  };
372  uint8_t ReservedZeros[2];
373  XCOFF::SymbolAuxType AuxType; // 64-bit XCOFF file only.
374 };
375 
380  uint8_t Pad[10];
381 }; // 32-bit XCOFF file only.
382 
388  uint8_t Pad[2];
389 };
390 
395  uint8_t Pad;
396  XCOFF::SymbolAuxType AuxType; // Contains _AUX_FCN; Type of auxiliary entry
397 };
398 
403  uint8_t Pad;
404  XCOFF::SymbolAuxType AuxType; // Contains _AUX_EXCEPT; Type of auxiliary entry
405 };
406 
408  uint8_t ReservedZeros1[2];
411  uint8_t ReservedZeros2[12];
412 };
413 
416  uint8_t Pad[13];
417  XCOFF::SymbolAuxType AuxType; // Contains _AUX_SYM; Type of auxiliary entry
418 };
419 
422  uint8_t Pad1[4];
424  uint8_t Pad2[6];
425 };
426 
430  uint8_t Pad;
431  XCOFF::SymbolAuxType AuxType; // Contains _AUX_SECT; Type of Auxillary entry
432 };
433 
434 template <typename AddressType> struct XCOFFRelocation {
435  // Masks for packing/unpacking the r_rsize field of relocations.
436 
437  // The msb is used to indicate if the bits being relocated are signed or
438  // unsigned.
439  static constexpr uint8_t XR_SIGN_INDICATOR_MASK = 0x80;
440 
441  // The 2nd msb is used to indicate that the binder has replaced/modified the
442  // original instruction.
443  static constexpr uint8_t XR_FIXUP_INDICATOR_MASK = 0x40;
444 
445  // The remaining bits specify the bit length of the relocatable reference
446  // minus one.
447  static constexpr uint8_t XR_BIASED_LENGTH_MASK = 0x3f;
448 
449 public:
450  AddressType VirtualAddress;
452 
453  // Packed field, see XR_* masks for details of packing.
454  uint8_t Info;
455 
457 
458 public:
459  bool isRelocationSigned() const;
460  bool isFixupIndicated() const;
461 
462  // Returns the number of bits being relocated.
463  uint8_t getRelocatedLength() const;
464 };
465 
466 extern template struct XCOFFRelocation<llvm::support::ubig32_t>;
467 extern template struct XCOFFRelocation<llvm::support::ubig64_t>;
468 
471 
472 class XCOFFSymbolRef;
473 
474 class XCOFFObjectFile : public ObjectFile {
475 private:
476  const void *FileHeader = nullptr;
477  const void *AuxiliaryHeader = nullptr;
478  const void *SectionHeaderTable = nullptr;
479 
480  const void *SymbolTblPtr = nullptr;
481  XCOFFStringTable StringTable = {0, nullptr};
482 
483  const XCOFFSectionHeader32 *sectionHeaderTable32() const;
484  const XCOFFSectionHeader64 *sectionHeaderTable64() const;
485  template <typename T> const T *sectionHeaderTable() const;
486 
487  size_t getFileHeaderSize() const;
488  size_t getSectionHeaderSize() const;
489 
490  const XCOFFSectionHeader32 *toSection32(DataRefImpl Ref) const;
491  const XCOFFSectionHeader64 *toSection64(DataRefImpl Ref) const;
492  uintptr_t getSectionHeaderTableAddress() const;
493  uintptr_t getEndOfSymbolTableAddress() const;
494 
495  DataRefImpl getSectionByType(XCOFF::SectionTypeFlags SectType) const;
496  uint64_t getSectionFileOffsetToRawData(DataRefImpl Sec) const;
498  getSectionFileOffsetToRawData(XCOFF::SectionTypeFlags SectType) const;
499 
500  // This returns a pointer to the start of the storage for the name field of
501  // the 32-bit or 64-bit SectionHeader struct. This string is *not* necessarily
502  // null-terminated.
503  const char *getSectionNameInternal(DataRefImpl Sec) const;
504 
505  static bool isReservedSectionNumber(int16_t SectionNumber);
506 
507  // Constructor and "create" factory function. The constructor is only a thin
508  // wrapper around the base constructor. The "create" function fills out the
509  // XCOFF-specific information and performs the error checking along the way.
511  static Expected<std::unique_ptr<XCOFFObjectFile>> create(unsigned Type,
512  MemoryBufferRef MBR);
513 
514  // Helper for parsing the StringTable. Returns an 'Error' if parsing failed
515  // and an XCOFFStringTable if parsing succeeded.
516  static Expected<XCOFFStringTable> parseStringTable(const XCOFFObjectFile *Obj,
517  uint64_t Offset);
518 
519  // Make a friend so it can call the private 'create' function.
522 
523  void checkSectionAddress(uintptr_t Addr, uintptr_t TableAddr) const;
524 
525 public:
526  static constexpr uint64_t InvalidRelocOffset =
528 
529  // Interface inherited from base classes.
530  void moveSymbolNext(DataRefImpl &Symb) const override;
531  Expected<uint32_t> getSymbolFlags(DataRefImpl Symb) const override;
532  basic_symbol_iterator symbol_begin() const override;
533  basic_symbol_iterator symbol_end() const override;
534 
535  Expected<StringRef> getSymbolName(DataRefImpl Symb) const override;
536  Expected<uint64_t> getSymbolAddress(DataRefImpl Symb) const override;
537  uint64_t getSymbolValueImpl(DataRefImpl Symb) const override;
538  uint32_t getSymbolAlignment(DataRefImpl Symb) const override;
539  uint64_t getCommonSymbolSizeImpl(DataRefImpl Symb) const override;
541  Expected<section_iterator> getSymbolSection(DataRefImpl Symb) const override;
542 
543  void moveSectionNext(DataRefImpl &Sec) const override;
544  Expected<StringRef> getSectionName(DataRefImpl Sec) const override;
545  uint64_t getSectionAddress(DataRefImpl Sec) const override;
546  uint64_t getSectionIndex(DataRefImpl Sec) const override;
547  uint64_t getSectionSize(DataRefImpl Sec) const override;
549  getSectionContents(DataRefImpl Sec) const override;
550  uint64_t getSectionAlignment(DataRefImpl Sec) const override;
551  bool isSectionCompressed(DataRefImpl Sec) const override;
552  bool isSectionText(DataRefImpl Sec) const override;
553  bool isSectionData(DataRefImpl Sec) const override;
554  bool isSectionBSS(DataRefImpl Sec) const override;
555  bool isDebugSection(DataRefImpl Sec) const override;
556 
557  bool isSectionVirtual(DataRefImpl Sec) const override;
558  relocation_iterator section_rel_begin(DataRefImpl Sec) const override;
559  relocation_iterator section_rel_end(DataRefImpl Sec) const override;
560 
561  void moveRelocationNext(DataRefImpl &Rel) const override;
562 
563  /// \returns the relocation offset with the base address of the containing
564  /// section as zero, or InvalidRelocOffset on errors (such as a relocation
565  /// that does not refer to an address in any section).
566  uint64_t getRelocationOffset(DataRefImpl Rel) const override;
567  symbol_iterator getRelocationSymbol(DataRefImpl Rel) const override;
568  uint64_t getRelocationType(DataRefImpl Rel) const override;
569  void getRelocationTypeName(DataRefImpl Rel,
570  SmallVectorImpl<char> &Result) const override;
571 
572  section_iterator section_begin() const override;
573  section_iterator section_end() const override;
574  uint8_t getBytesInAddress() const override;
575  StringRef getFileFormatName() const override;
576  Triple::ArchType getArch() const override;
577  SubtargetFeatures getFeatures() const override;
578  Expected<uint64_t> getStartAddress() const override;
579  StringRef mapDebugSectionName(StringRef Name) const override;
580  bool isRelocatableObject() const override;
581 
582  // Below here is the non-inherited interface.
583  bool is64Bit() const;
584  Expected<StringRef> getRawData(const char *Start, uint64_t Size,
585  StringRef Name) const;
586 
587  const XCOFFAuxiliaryHeader32 *auxiliaryHeader32() const;
588  const XCOFFAuxiliaryHeader64 *auxiliaryHeader64() const;
589 
590  const void *getPointerToSymbolTable() const { return SymbolTblPtr; }
591 
592  Expected<StringRef> getSymbolSectionName(XCOFFSymbolRef Ref) const;
593  unsigned getSymbolSectionID(SymbolRef Sym) const;
594  XCOFFSymbolRef toSymbolRef(DataRefImpl Ref) const;
595 
596  // File header related interfaces.
597  const XCOFFFileHeader32 *fileHeader32() const;
598  const XCOFFFileHeader64 *fileHeader64() const;
599  uint16_t getMagic() const;
600  uint16_t getNumberOfSections() const;
601  int32_t getTimeStamp() const;
602 
603  // Symbol table offset and entry count are handled differently between
604  // XCOFF32 and XCOFF64.
605  uint32_t getSymbolTableOffset32() const;
606  uint64_t getSymbolTableOffset64() const;
607 
608  // Note that this value is signed and might return a negative value. Negative
609  // values are reserved for future use.
610  int32_t getRawNumberOfSymbolTableEntries32() const;
611 
612  // The sanitized value appropriate to use as an index into the symbol table.
613  uint32_t getLogicalNumberOfSymbolTableEntries32() const;
614 
615  uint32_t getNumberOfSymbolTableEntries64() const;
616 
617  // Return getLogicalNumberOfSymbolTableEntries32 or
618  // getNumberOfSymbolTableEntries64 depending on the object mode.
619  uint32_t getNumberOfSymbolTableEntries() const;
620 
621  uint32_t getSymbolIndex(uintptr_t SymEntPtr) const;
622  uint64_t getSymbolSize(DataRefImpl Symb) const;
623  uintptr_t getSymbolByIndex(uint32_t Idx) const {
624  return reinterpret_cast<uintptr_t>(SymbolTblPtr) +
626  }
627  uintptr_t getSymbolEntryAddressByIndex(uint32_t SymbolTableIndex) const;
628  Expected<StringRef> getSymbolNameByIndex(uint32_t SymbolTableIndex) const;
629 
630  Expected<StringRef> getCFileName(const XCOFFFileAuxEnt *CFileEntPtr) const;
631  uint16_t getOptionalHeaderSize() const;
632  uint16_t getFlags() const;
633 
634  // Section header table related interfaces.
635  ArrayRef<XCOFFSectionHeader32> sections32() const;
636  ArrayRef<XCOFFSectionHeader64> sections64() const;
637 
638  int32_t getSectionFlags(DataRefImpl Sec) const;
639  Expected<DataRefImpl> getSectionByNum(int16_t Num) const;
640 
641  void checkSymbolEntryPointer(uintptr_t SymbolEntPtr) const;
642 
643  // Relocation-related interfaces.
644  template <typename T>
646  getNumberOfRelocationEntries(const XCOFFSectionHeader<T> &Sec) const;
647 
648  template <typename Shdr, typename Reloc>
649  Expected<ArrayRef<Reloc>> relocations(const Shdr &Sec) const;
650 
651  // Loader section related interfaces.
652  Expected<StringRef> getImportFileTable() const;
653 
654  // Exception-related interface.
655  template <typename ExceptEnt>
656  Expected<ArrayRef<ExceptEnt>> getExceptionEntries() const;
657 
658  // This function returns string table entry.
659  Expected<StringRef> getStringTableEntry(uint32_t Offset) const;
660 
661  // This function returns the string table.
662  StringRef getStringTable() const;
663 
664  const XCOFF::SymbolAuxType *getSymbolAuxType(uintptr_t AuxEntryAddress) const;
665 
666  static uintptr_t getAdvancedSymbolEntryAddress(uintptr_t CurrentAddress,
667  uint32_t Distance);
668 
669  static bool classof(const Binary *B) { return B->isXCOFF(); }
670 }; // XCOFFObjectFile
671 
672 typedef struct {
673  uint8_t LanguageId;
674  uint8_t CpuTypeId;
676 
678  typedef struct {
679  support::big32_t Magic; // Zero indicates name in string table.
682 
683  union {
686  };
687 
688  support::ubig32_t Value; // Symbol value; storage class-dependent.
690 
691  union {
694  };
695 
698 };
699 
701  support::ubig64_t Value; // Symbol value; storage class-dependent.
704 
705  union {
708  };
709 
712 };
713 
715 public:
716  enum { NAME_IN_STR_TBL_MAGIC = 0x0 };
717 
719  const XCOFFObjectFile *OwningObjectPtr)
720  : OwningObjectPtr(OwningObjectPtr) {
721  assert(OwningObjectPtr && "OwningObjectPtr cannot be nullptr!");
722  assert(SymEntDataRef.p != 0 &&
723  "Symbol table entry pointer cannot be nullptr!");
724 
725  if (OwningObjectPtr->is64Bit())
726  Entry64 = reinterpret_cast<const XCOFFSymbolEntry64 *>(SymEntDataRef.p);
727  else
728  Entry32 = reinterpret_cast<const XCOFFSymbolEntry32 *>(SymEntDataRef.p);
729  }
730 
731  const XCOFFSymbolEntry32 *getSymbol32() { return Entry32; }
732  const XCOFFSymbolEntry64 *getSymbol64() { return Entry64; }
733 
734  uint64_t getValue() const { return Entry32 ? getValue32() : getValue64(); }
735 
736  uint32_t getValue32() const { return Entry32->Value; }
737 
738  uint64_t getValue64() const { return Entry64->Value; }
739 
740 #define GETVALUE(X) Entry32 ? Entry32->X : Entry64->X
741 
742  int16_t getSectionNumber() const { return GETVALUE(SectionNumber); }
743 
745 
746  uint8_t getLanguageIdForCFile() const {
748  "This interface is for C_FILE only.");
749  return GETVALUE(CFileLanguageIdAndTypeId.LanguageId);
750  }
751 
752  uint8_t getCPUTypeIddForCFile() const {
754  "This interface is for C_FILE only.");
755  return GETVALUE(CFileLanguageIdAndTypeId.CpuTypeId);
756  }
757 
759 
760  uint8_t getNumberOfAuxEntries() const { return GETVALUE(NumberOfAuxEntries); }
761 
762 #undef GETVALUE
763 
764  uintptr_t getEntryAddress() const {
765  return Entry32 ? reinterpret_cast<uintptr_t>(Entry32)
766  : reinterpret_cast<uintptr_t>(Entry64);
767  }
768 
770  bool isFunction() const;
771  bool isCsectSymbol() const;
773 
774 private:
775  const XCOFFObjectFile *OwningObjectPtr;
776  const XCOFFSymbolEntry32 *Entry32 = nullptr;
777  const XCOFFSymbolEntry64 *Entry64 = nullptr;
778 };
779 
780 class TBVectorExt {
781  uint16_t Data;
782  SmallString<32> VecParmsInfo;
783 
784  TBVectorExt(StringRef TBvectorStrRef, Error &Err);
785 
786 public:
787  static Expected<TBVectorExt> create(StringRef TBvectorStrRef);
788  uint8_t getNumberOfVRSaved() const;
789  bool isVRSavedOnStack() const;
790  bool hasVarArgs() const;
791  uint8_t getNumberOfVectorParms() const;
792  bool hasVMXInstruction() const;
793  SmallString<32> getVectorParmsInfo() const { return VecParmsInfo; };
794 };
795 
796 /// This class provides methods to extract traceback table data from a buffer.
797 /// The various accessors may reference the buffer provided via the constructor.
798 
800  const uint8_t *const TBPtr;
801  Optional<SmallString<32>> ParmsType;
802  Optional<uint32_t> TraceBackTableOffset;
803  Optional<uint32_t> HandlerMask;
804  Optional<uint32_t> NumOfCtlAnchors;
805  Optional<SmallVector<uint32_t, 8>> ControlledStorageInfoDisp;
806  Optional<StringRef> FunctionName;
807  Optional<uint8_t> AllocaRegister;
808  Optional<TBVectorExt> VecExt;
809  Optional<uint8_t> ExtensionTable;
810 
811  XCOFFTracebackTable(const uint8_t *Ptr, uint64_t &Size, Error &Err);
812 
813 public:
814  /// Parse an XCOFF Traceback Table from \a Ptr with \a Size bytes.
815  /// Returns an XCOFFTracebackTable upon successful parsing, otherwise an
816  /// Error is returned.
817  ///
818  /// \param[in] Ptr
819  /// A pointer that points just past the initial 4 bytes of zeros at the
820  /// beginning of an XCOFF Traceback Table.
821  ///
822  /// \param[in, out] Size
823  /// A pointer that points to the length of the XCOFF Traceback Table.
824  /// If the XCOFF Traceback Table is not parsed successfully or there are
825  /// extra bytes that are not recognized, \a Size will be updated to be the
826  /// size up to the end of the last successfully parsed field of the table.
827  static Expected<XCOFFTracebackTable> create(const uint8_t *Ptr,
828  uint64_t &Size);
829  uint8_t getVersion() const;
830  uint8_t getLanguageID() const;
831 
832  bool isGlobalLinkage() const;
833  bool isOutOfLineEpilogOrPrologue() const;
834  bool hasTraceBackTableOffset() const;
835  bool isInternalProcedure() const;
836  bool hasControlledStorage() const;
837  bool isTOCless() const;
838  bool isFloatingPointPresent() const;
840 
841  bool isInterruptHandler() const;
842  bool isFuncNamePresent() const;
843  bool isAllocaUsed() const;
844  uint8_t getOnConditionDirective() const;
845  bool isCRSaved() const;
846  bool isLRSaved() const;
847 
848  bool isBackChainStored() const;
849  bool isFixup() const;
850  uint8_t getNumOfFPRsSaved() const;
851 
852  bool hasVectorInfo() const;
853  bool hasExtensionTable() const;
854  uint8_t getNumOfGPRsSaved() const;
855 
856  uint8_t getNumberOfFixedParms() const;
857 
858  uint8_t getNumberOfFPParms() const;
859  bool hasParmsOnStack() const;
860 
861  const Optional<SmallString<32>> &getParmsType() const { return ParmsType; }
863  return TraceBackTableOffset;
864  }
865  const Optional<uint32_t> &getHandlerMask() const { return HandlerMask; }
866  const Optional<uint32_t> &getNumOfCtlAnchors() { return NumOfCtlAnchors; }
868  return ControlledStorageInfoDisp;
869  }
870  const Optional<StringRef> &getFunctionName() const { return FunctionName; }
871  const Optional<uint8_t> &getAllocaRegister() const { return AllocaRegister; }
872  const Optional<TBVectorExt> &getVectorExt() const { return VecExt; }
873  const Optional<uint8_t> &getExtensionTable() const { return ExtensionTable; }
874 };
875 
877 } // namespace object
878 } // namespace llvm
879 
880 #endif // LLVM_OBJECT_XCOFFOBJECTFILE_H
llvm::object::XCOFFBlockAuxEnt32::LineNumHi
support::ubig16_t LineNumHi
Definition: XCOFFObjectFile.h:409
llvm::object::XCOFFCsectAuxEnt32::TypeChkSectNum
support::ubig16_t TypeChkSectNum
Definition: XCOFFObjectFile.h:260
llvm::object::XCOFFAuxiliaryHeader32::MaxDataSize
support::ubig32_t MaxDataSize
If the value is 0, the system default maximum data size is used.
Definition: XCOFFObjectFile.h:101
llvm::object::XCOFFAuxiliaryHeader32::TextSize
support::ubig32_t TextSize
Definition: XCOFFObjectFile.h:81
llvm::object::XCOFFTracebackTable::isTOCless
bool isTOCless() const
Definition: XCOFFObjectFile.cpp:1498
llvm::object::XCOFFTracebackTable::isInterruptHandler
bool isInterruptHandler() const
Definition: XCOFFObjectFile.cpp:1510
llvm::object::XCOFFAuxiliaryHeader32::MaxStackSize
support::ubig32_t MaxStackSize
If the value is 0, the system default maximum stack size is used.
Definition: XCOFFObjectFile.h:99
llvm::object::XCOFFFileHeader64::AuxHeaderSize
support::ubig16_t AuxHeaderSize
Definition: XCOFFObjectFile.h:49
llvm::object::XCOFFSectionHeader::isReservedSectionType
bool isReservedSectionType() const
Definition: XCOFFObjectFile.cpp:68
llvm::object::XCOFFCsectAuxEnt64::StorageMappingClass
XCOFF::StorageMappingClass StorageMappingClass
Definition: XCOFFObjectFile.h:272
llvm::object::XCOFFCsectAuxRef::getTypeChkSectNum
uint16_t getTypeChkSectNum() const
Definition: XCOFFObjectFile.h:313
llvm::object::XCOFFExceptionAuxEnt::SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
Definition: XCOFFObjectFile.h:402
llvm::object::XCOFFSectAuxEntForStat::Pad
uint8_t Pad[10]
Definition: XCOFFObjectFile.h:380
llvm::object::XCOFFFileHeader32::AuxHeaderSize
support::ubig16_t AuxHeaderSize
Definition: XCOFFObjectFile.h:36
llvm::object::XCOFFSymbolEntry32::StorageClass
XCOFF::StorageClass StorageClass
Definition: XCOFFObjectFile.h:696
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::object::ExceptionSectionEntry
Definition: XCOFFObjectFile.h:223
llvm::object::XCOFFCsectAuxEnt32::ParameterHashIndex
support::ubig32_t ParameterHashIndex
Definition: XCOFFObjectFile.h:259
llvm::object::ExceptionSectionEntry::getReason
uint8_t getReason() const
Definition: XCOFFObjectFile.h:242
llvm::object::XCOFFSectionHeader32
Definition: XCOFFObjectFile.h:171
llvm::object::XCOFFTracebackTable::getExtensionTable
const Optional< uint8_t > & getExtensionTable() const
Definition: XCOFFObjectFile.h:873
llvm::object::XCOFFSymbolEntry32::SectionNumber
support::big16_t SectionNumber
Definition: XCOFFObjectFile.h:689
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfTBSS
support::ubig16_t SecNumOfTBSS
Definition: XCOFFObjectFile.h:148
GETVALUE
#define GETVALUE(X)
Definition: XCOFFObjectFile.h:740
llvm::object::XCOFFAuxiliaryHeader64::MaxAlignOfData
support::ubig16_t MaxAlignOfData
Definition: XCOFFObjectFile.h:133
llvm::object::XCOFFTracebackTable::hasParmsOnStack
bool hasParmsOnStack() const
Definition: XCOFFObjectFile.cpp:1569
llvm::object::XCOFFSymbolRef::getXCOFFCsectAuxRef
Expected< XCOFFCsectAuxRef > getXCOFFCsectAuxRef() const
Definition: XCOFFObjectFile.cpp:1236
llvm::object::TBVectorExt::hasVarArgs
bool hasVarArgs() const
Definition: XCOFFObjectFile.cpp:1354
llvm::object::XCOFFSymbolRef::getName
Expected< StringRef > getName() const
Definition: XCOFFObjectFile.cpp:1279
llvm::XCOFF::XTY_LD
@ XTY_LD
Label definition. Defines an entry point to an initialized csect.
Definition: XCOFF.h:228
llvm::object::XCOFFBlockAuxEnt32::LineNumLo
support::ubig16_t LineNumLo
Definition: XCOFFObjectFile.h:410
llvm::object::XCOFFSectionHeader64::PhysicalAddress
support::ubig64_t PhysicalAddress
Definition: XCOFFObjectFile.h:186
llvm::support::detail::packed_endian_specific_integral
Definition: Endian.h:206
llvm::object::XCOFFAuxiliaryHeader32::MaxAlignOfText
support::ubig16_t MaxAlignOfText
Definition: XCOFFObjectFile.h:94
llvm::object::XCOFFAuxiliaryHeader32::ReservedForDebugger
support::ubig32_t ReservedForDebugger
This field should contain 0.
Definition: XCOFFObjectFile.h:104
llvm::object::LoaderSectionHeader32::Version
support::ubig32_t Version
Definition: XCOFFObjectFile.h:199
llvm::object::XCOFFFileHeader32
Definition: XCOFFObjectFile.h:26
is64Bit
static bool is64Bit(const char *name)
Definition: X86Disassembler.cpp:1018
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfTData
support::ubig16_t SecNumOfTData
Definition: XCOFFObjectFile.h:147
llvm::object::XCOFFRelocation::VirtualAddress
AddressType VirtualAddress
Definition: XCOFFObjectFile.h:450
llvm::XCOFF::C_FILE
@ C_FILE
Definition: XCOFF.h:157
llvm::object::XCOFFTracebackTable::isFloatingPointPresent
bool isFloatingPointPresent() const
Definition: XCOFFObjectFile.cpp:1502
llvm::XCOFF::SymbolType
SymbolType
Definition: XCOFF.h:225
llvm::object::XCOFFFunctionAuxEnt64::SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
Definition: XCOFFObjectFile.h:394
llvm::object::XCOFFTracebackTable::getVersion
uint8_t getVersion() const
Definition: XCOFFObjectFile.cpp:1470
llvm::object::XCOFFSectionHeader32::FileOffsetToRelocationInfo
support::ubig32_t FileOffsetToRelocationInfo
Definition: XCOFFObjectFile.h:177
llvm::object::XCOFFAuxiliaryHeader32::CpuType
uint8_t CpuType
Definition: XCOFFObjectFile.h:98
llvm::object::XCOFFTracebackTable::isBackChainStored
bool isBackChainStored() const
Definition: XCOFFObjectFile.cpp:1535
llvm::object::XCOFFSectAuxEntForDWARF64::LengthOfSectionPortion
support::ubig64_t LengthOfSectionPortion
Definition: XCOFFObjectFile.h:428
llvm::object::LoaderSectionHeader64::OffsetToImpid
support::big64_t OffsetToImpid
Definition: XCOFFObjectFile.h:216
llvm::object::CFileLanguageIdAndTypeIdType::CpuTypeId
uint8_t CpuTypeId
Definition: XCOFFObjectFile.h:674
llvm::object::XCOFFBlockAuxEnt64::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:417
llvm::object::XCOFFSectionHeader::SectionFlagsReservedMask
static constexpr unsigned SectionFlagsReservedMask
Definition: XCOFFObjectFile.h:154
llvm::object::XCOFFSectionHeader
Definition: XCOFFObjectFile.h:152
llvm::object::XCOFFObjectFile::is64Bit
bool is64Bit() const
Definition: XCOFFObjectFile.cpp:728
llvm::object::XCOFFTracebackTable::isOutOfLineEpilogOrPrologue
bool isOutOfLineEpilogOrPrologue() const
Definition: XCOFFObjectFile.cpp:1482
llvm::object::CFileLanguageIdAndTypeIdType::LanguageId
uint8_t LanguageId
Definition: XCOFFObjectFile.h:673
llvm::object::ExceptionSectionEntry::Reason
uint8_t Reason
Definition: XCOFFObjectFile.h:229
llvm::object::XCOFFAuxiliaryHeader64
Definition: XCOFFObjectFile.h:119
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:45
llvm::object::XCOFFSymbolEntry32::NameInStrTblType
Definition: XCOFFObjectFile.h:678
llvm::object::XCOFFRelocation64
Definition: XCOFFObjectFile.h:470
llvm::object::XCOFFSectAuxEntForDWARF32::LengthOfSectionPortion
support::ubig32_t LengthOfSectionPortion
Definition: XCOFFObjectFile.h:421
llvm::object::XCOFFFileAuxEnt::NameInStrTblType::Magic
support::big32_t Magic
Definition: XCOFFObjectFile.h:363
llvm::object::XCOFFRelocation::XR_FIXUP_INDICATOR_MASK
static constexpr uint8_t XR_FIXUP_INDICATOR_MASK
Definition: XCOFFObjectFile.h:443
llvm::object::XCOFFSectAuxEntForDWARF32::NumberOfRelocEnt
support::ubig32_t NumberOfRelocEnt
Definition: XCOFFObjectFile.h:423
llvm::object::XCOFFAuxiliaryHeader64::InitDataSize
support::ubig64_t InitDataSize
Definition: XCOFFObjectFile.h:142
llvm::object::TBVectorExt::hasVMXInstruction
bool hasVMXInstruction() const
Definition: XCOFFObjectFile.cpp:1363
llvm::object::XCOFFSectionHeader32::FileOffsetToRawData
support::ubig32_t FileOffsetToRawData
Definition: XCOFFObjectFile.h:176
llvm::Optional
Definition: APInt.h:33
T
#define T
Definition: Mips16ISelLowering.cpp:341
llvm::object::XCOFFFunctionAuxEnt32
Definition: XCOFFObjectFile.h:383
llvm::object::LoaderSectionHeader32::NumberOfRelTabEnt
support::ubig32_t NumberOfRelTabEnt
Definition: XCOFFObjectFile.h:201
llvm::object::XCOFFRelocation::XR_SIGN_INDICATOR_MASK
static constexpr uint8_t XR_SIGN_INDICATOR_MASK
Definition: XCOFFObjectFile.h:439
llvm::object::XCOFFFileAuxEnt::Name
char Name[XCOFF::NameSize+XCOFF::FileNamePadSize]
Definition: XCOFFObjectFile.h:368
llvm::object::XCOFFCsectAuxRef::getParameterHashIndex
uint32_t getParameterHashIndex() const
Definition: XCOFFObjectFile.h:309
llvm::RawInstrProf::getMagic
uint64_t getMagic()
llvm::max
Expected< ExpressionValue > max(const ExpressionValue &Lhs, const ExpressionValue &Rhs)
Definition: FileCheck.cpp:337
llvm::object::XCOFFTracebackTable::getFunctionName
const Optional< StringRef > & getFunctionName() const
Definition: XCOFFObjectFile.h:870
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfTOC
support::ubig16_t SecNumOfTOC
Definition: XCOFFObjectFile.h:129
llvm::Expected
Tagged union holding either a T or a Error.
Definition: APFloat.h:41
llvm::object::CFileLanguageIdAndTypeIdType
Definition: XCOFFObjectFile.h:672
llvm::object::XCOFFSymbolRef::getNumberOfAuxEntries
uint8_t getNumberOfAuxEntries() const
Definition: XCOFFObjectFile.h:760
llvm::object::XCOFFFileHeader64
Definition: XCOFFObjectFile.h:40
llvm::object::XCOFFExceptionAuxEnt::OffsetToExceptionTbl
support::ubig64_t OffsetToExceptionTbl
Definition: XCOFFObjectFile.h:400
llvm::object::LoaderSectionHeader64::LengthOfImpidStrTbl
support::ubig32_t LengthOfImpidStrTbl
Definition: XCOFFObjectFile.h:213
llvm::object::XCOFFSymbolEntry64::Value
support::ubig64_t Value
Definition: XCOFFObjectFile.h:701
llvm::object::XCOFFCsectAuxRef::getSymbolType
uint8_t getSymbolType() const
Definition: XCOFFObjectFile.h:329
llvm::object::XCOFFExceptionAuxEnt
Definition: XCOFFObjectFile.h:399
llvm::object::LoaderSectionHeader64::NumberOfRelTabEnt
support::ubig32_t NumberOfRelTabEnt
Definition: XCOFFObjectFile.h:212
llvm::object::XCOFFAuxiliaryHeader64::MaxAlignOfText
support::ubig16_t MaxAlignOfText
Definition: XCOFFObjectFile.h:132
llvm::object::XCOFFFileHeader64::Magic
support::ubig16_t Magic
Definition: XCOFFObjectFile.h:41
llvm::object::XCOFFAuxiliaryHeader
Definition: XCOFFObjectFile.h:54
llvm::object::XCOFFSymbolEntry64
Definition: XCOFFObjectFile.h:700
llvm::object::XCOFFSymbolEntry32::SymbolType
support::ubig16_t SymbolType
Definition: XCOFFObjectFile.h:692
llvm::MemoryBufferRef
Definition: MemoryBufferRef.h:22
llvm::object::XCOFFSectAuxEntForStat::SectionLength
support::ubig32_t SectionLength
Definition: XCOFFObjectFile.h:377
llvm::object::XCOFFCsectAuxRef::getSectionOrLength
uint64_t getSectionOrLength() const
Definition: XCOFFObjectFile.h:292
llvm::object::XCOFFSectionHeader32::NumberOfRelocations
support::ubig16_t NumberOfRelocations
Definition: XCOFFObjectFile.h:179
llvm::object::XCOFFTracebackTable::getAllocaRegister
const Optional< uint8_t > & getAllocaRegister() const
Definition: XCOFFObjectFile.h:871
llvm::object::XCOFFSymbolRef::isFunction
bool isFunction() const
Definition: XCOFFObjectFile.cpp:1192
llvm::object::XCOFFCsectAuxRef
Definition: XCOFFObjectFile.h:278
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfText
support::ubig16_t SecNumOfText
Definition: XCOFFObjectFile.h:89
llvm::object::XCOFFSectionHeader64::NumberOfLineNumbers
support::ubig32_t NumberOfLineNumbers
Definition: XCOFFObjectFile.h:193
llvm::object::XCOFFTracebackTable::getTraceBackTableOffset
const Optional< uint32_t > & getTraceBackTableOffset() const
Definition: XCOFFObjectFile.h:862
llvm::object::XCOFFSymbolRef::getValue64
uint64_t getValue64() const
Definition: XCOFFObjectFile.h:738
llvm::object::XCOFFBlockAuxEnt64
Definition: XCOFFObjectFile.h:414
llvm::object::XCOFFSymbolRef
Definition: XCOFFObjectFile.h:714
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfTOC
support::ubig16_t SecNumOfTOC
Definition: XCOFFObjectFile.h:91
llvm::object::XCOFFSectionHeader32::NumberOfLineNumbers
support::ubig16_t NumberOfLineNumbers
Definition: XCOFFObjectFile.h:180
llvm::object::XCOFFSectionHeader32::VirtualAddress
support::ubig32_t VirtualAddress
Definition: XCOFFObjectFile.h:174
llvm::object::XCOFFFileAuxEnt::NameInStrTblType
Definition: XCOFFObjectFile.h:362
llvm::object::XCOFFSectAuxEntForDWARF32
Definition: XCOFFObjectFile.h:420
getSectionFlags
static uint32_t getSectionFlags(const MachOObjectFile &O, DataRefImpl Sec)
Definition: MachOObjectFile.cpp:180
XCOFF.h
llvm::object::XCOFFAuxiliaryHeader64::CpuFlag
uint8_t CpuFlag
Definition: XCOFFObjectFile.h:135
llvm::object::XCOFFTracebackTable::isFuncNamePresent
bool isFuncNamePresent() const
Definition: XCOFFObjectFile.cpp:1514
llvm::object::XCOFFSymbolEntry64::SectionNumber
support::big16_t SectionNumber
Definition: XCOFFObjectFile.h:703
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfTData
support::ubig16_t SecNumOfTData
Definition: XCOFFObjectFile.h:115
llvm::object::XCOFFAuxiliaryHeader64::TOCAnchorAddr
support::ubig64_t TOCAnchorAddr
Definition: XCOFFObjectFile.h:125
llvm::object::XCOFFAuxiliaryHeader::getFlag
uint8_t getFlag() const
Definition: XCOFFObjectFile.h:59
llvm::object::XCOFFAuxiliaryHeader32::DataStartAddr
support::ubig32_t DataStartAddr
Definition: XCOFFObjectFile.h:86
llvm::object::XCOFFTracebackTable::getNumOfGPRsSaved
uint8_t getNumOfGPRsSaved() const
Definition: XCOFFObjectFile.cpp:1555
llvm::object::XCOFFTracebackTable::getHandlerMask
const Optional< uint32_t > & getHandlerMask() const
Definition: XCOFFObjectFile.h:865
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfLoader
support::ubig16_t SecNumOfLoader
Definition: XCOFFObjectFile.h:92
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfData
support::ubig16_t SecNumOfData
Definition: XCOFFObjectFile.h:128
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:74
llvm::object::XCOFFFunctionAuxEnt64::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:396
llvm::object::XCOFFFileAuxEnt::NameInStrTblType::Offset
support::ubig32_t Offset
Definition: XCOFFObjectFile.h:364
llvm::object::XCOFFFunctionAuxEnt64::SizeOfFunction
support::ubig32_t SizeOfFunction
Definition: XCOFFObjectFile.h:393
llvm::Triple::ArchType
ArchType
Definition: Triple.h:46
llvm::ModRefInfo::Ref
@ Ref
The access may reference the value stored in memory.
llvm::object::TBVectorExt::getVectorParmsInfo
SmallString< 32 > getVectorParmsInfo() const
Definition: XCOFFObjectFile.h:793
SmallString.h
llvm::object::XCOFFAuxiliaryHeader64::FlagAndTDataAlignment
uint8_t FlagAndTDataAlignment
Definition: XCOFFObjectFile.h:140
llvm::object::XCOFFStringTable::Size
uint32_t Size
Definition: XCOFFObjectFile.h:253
llvm::object::TBVectorExt::getNumberOfVectorParms
uint8_t getNumberOfVectorParms() const
Definition: XCOFFObjectFile.cpp:1358
llvm::object::ExceptionSectionEntry::SymbolIdx
support::ubig32_t SymbolIdx
Definition: XCOFFObjectFile.h:225
llvm::object::XCOFFTracebackTable::isFixup
bool isFixup() const
Definition: XCOFFObjectFile.cpp:1539
llvm::object::XCOFFSectAuxEntForStat::NumberOfLineNum
support::ubig16_t NumberOfLineNum
Definition: XCOFFObjectFile.h:379
llvm::object::XCOFFAuxiliaryHeader64::MaxDataSize
support::ubig64_t MaxDataSize
Definition: XCOFFObjectFile.h:146
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfLoader
support::ubig16_t SecNumOfLoader
Definition: XCOFFObjectFile.h:130
llvm::object::XCOFFFileHeader64::SymbolTableOffset
support::ubig64_t SymbolTableOffset
Definition: XCOFFObjectFile.h:48
llvm::SubtargetFeatures
Manages the enabling and disabling of subtarget specific features.
Definition: SubtargetFeature.h:180
llvm::object::XCOFFAuxiliaryHeader64::Version
support::ubig16_t Version
Definition: XCOFFObjectFile.h:121
llvm::object::ExceptionSectionEntry::TrapInstAddr
AddressType TrapInstAddr
Definition: XCOFFObjectFile.h:226
llvm::object::ExceptionSectionEntry::LangId
uint8_t LangId
Definition: XCOFFObjectFile.h:228
llvm::object::XCOFFSectionHeader64::SectionSize
support::ubig64_t SectionSize
Definition: XCOFFObjectFile.h:188
B
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
llvm::object::XCOFFCsectAuxRef::getStabSectNum32
uint16_t getStabSectNum32() const
Definition: XCOFFObjectFile.h:340
llvm::object::XCOFFCsectAuxRef::XCOFFCsectAuxRef
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt64 *Entry64)
Definition: XCOFFObjectFile.h:285
llvm::object::XCOFFSymbolRef::getCPUTypeIddForCFile
uint8_t getCPUTypeIddForCFile() const
Definition: XCOFFObjectFile.h:752
llvm::object::XCOFFCsectAuxEnt64::SectionOrLengthLowByte
support::ubig32_t SectionOrLengthLowByte
Definition: XCOFFObjectFile.h:268
llvm::XCOFF::SymbolTableEntrySize
constexpr size_t SymbolTableEntrySize
Definition: XCOFF.h:37
llvm::object::ExceptionSectionEntry64
ExceptionSectionEntry< support::ubig64_t > ExceptionSectionEntry64
Definition: XCOFFObjectFile.h:246
llvm::object::XCOFFAuxiliaryHeader::AuxiHeaderTDataAlignmentMask
static constexpr uint8_t AuxiHeaderTDataAlignmentMask
Definition: XCOFFObjectFile.h:56
llvm::object::XCOFFTracebackTable::isGlobalLinkage
bool isGlobalLinkage() const
Definition: XCOFFObjectFile.cpp:1478
llvm::object::DataRefImpl::p
uintptr_t p
Definition: SymbolicFile.h:41
llvm::object::XCOFFObjectFile::getPointerToSymbolTable
const void * getPointerToSymbolTable() const
Definition: XCOFFObjectFile.h:590
llvm::IndexedInstrProf::Version
const uint64_t Version
Definition: InstrProf.h:1056
llvm::object::XCOFFAuxiliaryHeader32::BssDataSize
support::ubig32_t BssDataSize
Definition: XCOFFObjectFile.h:83
llvm::object::XCOFFExceptionAuxEnt::Pad
uint8_t Pad
Definition: XCOFFObjectFile.h:403
llvm::object::XCOFFAuxiliaryHeader64::TextPageSize
uint8_t TextPageSize
Definition: XCOFFObjectFile.h:137
llvm::object::XCOFFSectAuxEntForDWARF64::NumberOfRelocEnt
support::ubig64_t NumberOfRelocEnt
Definition: XCOFFObjectFile.h:429
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfEntryPoint
support::ubig16_t SecNumOfEntryPoint
Definition: XCOFFObjectFile.h:126
llvm::object::XCOFFRelocation::Type
XCOFF::RelocationType Type
Definition: XCOFFObjectFile.h:456
llvm::object::XCOFFSectAuxEntForStat
Definition: XCOFFObjectFile.h:376
llvm::object::XCOFFAuxiliaryHeader64::ReservedForDebugger
support::ubig32_t ReservedForDebugger
Definition: XCOFFObjectFile.h:122
llvm::object::XCOFFCsectAuxEnt32::StabSectNum
support::ubig16_t StabSectNum
Definition: XCOFFObjectFile.h:264
llvm::object::XCOFFSymbolRef::XCOFFSymbolRef
XCOFFSymbolRef(DataRefImpl SymEntDataRef, const XCOFFObjectFile *OwningObjectPtr)
Definition: XCOFFObjectFile.h:718
llvm::object::XCOFFObjectFile::getSymbolByIndex
uintptr_t getSymbolByIndex(uint32_t Idx) const
Definition: XCOFFObjectFile.h:623
llvm::object::LoaderSectionHeader64::NumberOfSymTabEnt
support::ubig32_t NumberOfSymTabEnt
Definition: XCOFFObjectFile.h:211
llvm::object::LoaderSectionHeader32
Definition: XCOFFObjectFile.h:198
llvm::object::XCOFFSectionHeader64::FileOffsetToRelocationInfo
support::big64_t FileOffsetToRelocationInfo
Definition: XCOFFObjectFile.h:190
llvm::XCOFF::StorageMappingClass
StorageMappingClass
Storage Mapping Class definitions.
Definition: XCOFF.h:88
llvm::object::XCOFFCsectAuxRef::isLabel
bool isLabel() const
Definition: XCOFFObjectFile.h:333
llvm::object::XCOFFCsectAuxRef::getAuxType64
XCOFF::SymbolAuxType getAuxType64() const
Definition: XCOFFObjectFile.h:345
llvm::SmallString< 32 >
llvm::object::XCOFFCsectAuxEnt64
Definition: XCOFFObjectFile.h:267
llvm::object::XCOFFTracebackTable::isLRSaved
bool isLRSaved() const
Definition: XCOFFObjectFile.cpp:1531
llvm::MachO::FileType
FileType
Defines the file type this file represents.
Definition: InterfaceFile.h:53
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfBSS
support::ubig16_t SecNumOfBSS
Definition: XCOFFObjectFile.h:131
llvm::XCOFF::NameSize
constexpr size_t NameSize
Definition: XCOFF.h:29
llvm::OutputFileType::Object
@ Object
llvm::object::XCOFFTracebackTable::isCRSaved
bool isCRSaved() const
Definition: XCOFFObjectFile.cpp:1527
llvm::object::XCOFFSectAuxEntForStat::NumberOfRelocEnt
support::ubig16_t NumberOfRelocEnt
Definition: XCOFFObjectFile.h:378
llvm::object::XCOFFFileHeader32::NumberOfSymTableEntries
support::big32_t NumberOfSymTableEntries
Definition: XCOFFObjectFile.h:35
llvm::object::XCOFFAuxiliaryHeader32::TOCAnchorAddr
support::ubig32_t TOCAnchorAddr
Definition: XCOFFObjectFile.h:87
llvm::object::XCOFFCsectAuxRef::getStorageMappingClass
XCOFF::StorageMappingClass getStorageMappingClass() const
Definition: XCOFFObjectFile.h:315
llvm::object::XCOFFSymbolEntry32::NameInStrTblType::Offset
support::ubig32_t Offset
Definition: XCOFFObjectFile.h:680
llvm::XCOFF::StorageClass
StorageClass
Definition: XCOFF.h:155
llvm::object::TBVectorExt::create
static Expected< TBVectorExt > create(StringRef TBvectorStrRef)
Definition: XCOFFObjectFile.cpp:1322
llvm::object::XCOFFAuxiliaryHeader32::FlagAndTDataAlignment
uint8_t FlagAndTDataAlignment
Definition: XCOFFObjectFile.h:114
llvm::object::XCOFFCsectAuxEnt32::SymbolAlignmentAndType
uint8_t SymbolAlignmentAndType
Definition: XCOFFObjectFile.h:261
llvm::object::XCOFFAuxiliaryHeader32::DataPageSize
uint8_t DataPageSize
Specifies the size of pages for the exec data.
Definition: XCOFFObjectFile.h:110
llvm::object::LoaderSectionHeader64
Definition: XCOFFObjectFile.h:209
llvm::object::XCOFFAuxiliaryHeader64::ModuleType
support::ubig16_t ModuleType
Definition: XCOFFObjectFile.h:134
llvm::object::XCOFFCsectAuxRef::getAlignmentLog2
uint16_t getAlignmentLog2() const
Definition: XCOFFObjectFile.h:324
llvm::object::XCOFFBlockAuxEnt32::ReservedZeros1
uint8_t ReservedZeros1[2]
Definition: XCOFFObjectFile.h:408
object
bar al al movzbl eax ret Missed when stored in a memory object
Definition: README.txt:1411
llvm::object::XCOFFStringTable::Data
const char * Data
Definition: XCOFFObjectFile.h:254
llvm::object::XCOFFSymbolEntry64::Offset
support::ubig32_t Offset
Definition: XCOFFObjectFile.h:702
llvm::object::ExceptionSectionEntry::getLangID
uint8_t getLangID() const
Definition: XCOFFObjectFile.h:241
llvm::object::XCOFFTracebackTable::getNumberOfFPParms
uint8_t getNumberOfFPParms() const
Definition: XCOFFObjectFile.cpp:1564
llvm::object::XCOFFAuxiliaryHeader32::StackPageSize
uint8_t StackPageSize
Specifies the size of pages for the stack.
Definition: XCOFFObjectFile.h:112
llvm::object::XCOFFFileHeader32::SymbolTableOffset
support::ubig32_t SymbolTableOffset
Definition: XCOFFObjectFile.h:34
uint64_t
llvm::object::XCOFFTracebackTable::getVectorExt
const Optional< TBVectorExt > & getVectorExt() const
Definition: XCOFFObjectFile.h:872
llvm::object::symbol_iterator
Definition: ObjectFile.h:207
llvm::object::XCOFFRelocation::isRelocationSigned
bool isRelocationSigned() const
Definition: XCOFFObjectFile.cpp:73
getSymbolType
static std::unique_ptr< PDBSymbol > getSymbolType(const PDBSymbol &Symbol)
Definition: UDTLayout.cpp:36
llvm::object::LoaderSectionHeader64::OffsetToStrTbl
support::big64_t OffsetToStrTbl
Definition: XCOFFObjectFile.h:217
Addr
uint64_t Addr
Definition: ELFObjHandler.cpp:78
llvm::object::XCOFFFileHeader64::NumberOfSymTableEntries
support::ubig32_t NumberOfSymTableEntries
Definition: XCOFFObjectFile.h:51
llvm::object::XCOFFRelocation::getRelocatedLength
uint8_t getRelocatedLength() const
Definition: XCOFFObjectFile.cpp:83
llvm::object::XCOFFSymbolEntry64::NumberOfAuxEntries
uint8_t NumberOfAuxEntries
Definition: XCOFFObjectFile.h:711
llvm::object::XCOFFSectionHeader::SectionFlagsTypeMask
static constexpr unsigned SectionFlagsTypeMask
Definition: XCOFFObjectFile.h:157
llvm::object::XCOFFAuxiliaryHeader64::TextSize
support::ubig64_t TextSize
Definition: XCOFFObjectFile.h:141
llvm::object::XCOFFAuxiliaryHeader64::TextStartAddr
support::ubig64_t TextStartAddr
Definition: XCOFFObjectFile.h:123
llvm::object::XCOFFFunctionAuxEnt64::Pad
uint8_t Pad
Definition: XCOFFObjectFile.h:395
llvm::object::XCOFFAuxiliaryHeader32::TextPageSize
uint8_t TextPageSize
Specifies the size of pages for the exec text.
Definition: XCOFFObjectFile.h:108
llvm::object::XCOFFCsectAuxEnt32::SectionOrLength
support::ubig32_t SectionOrLength
Definition: XCOFFObjectFile.h:258
llvm::object::LoaderSectionHeader32::LengthOfStrTbl
support::ubig32_t LengthOfStrTbl
Definition: XCOFFObjectFile.h:205
llvm::object::XCOFFFunctionAuxEnt32::Pad
uint8_t Pad[2]
Definition: XCOFFObjectFile.h:388
llvm::object::XCOFFTracebackTable::hasTraceBackTableOffset
bool hasTraceBackTableOffset() const
Definition: XCOFFObjectFile.cpp:1486
llvm::object::TBVectorExt
Definition: XCOFFObjectFile.h:780
assert
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
llvm::object::XCOFFFunctionAuxEnt64::PtrToLineNum
support::ubig64_t PtrToLineNum
Definition: XCOFFObjectFile.h:392
llvm::object::XCOFFSectionHeader64::Flags
support::big32_t Flags
Definition: XCOFFObjectFile.h:194
ObjectFile.h
llvm::object::XCOFFFileHeader32::TimeStamp
support::big32_t TimeStamp
Definition: XCOFFObjectFile.h:32
llvm::object::XCOFFAuxiliaryHeader64::DataPageSize
uint8_t DataPageSize
Definition: XCOFFObjectFile.h:138
llvm::object::content_iterator
Definition: SymbolicFile.h:69
llvm::object::XCOFFSymbolRef::getSectionNumber
int16_t getSectionNumber() const
Definition: XCOFFObjectFile.h:742
llvm::object::LoaderSectionHeader64::OffsetToSymTbl
support::big64_t OffsetToSymTbl
Definition: XCOFFObjectFile.h:218
Ptr
@ Ptr
Definition: TargetLibraryInfo.cpp:60
llvm::object::XCOFFStringTable
Definition: XCOFFObjectFile.h:252
llvm::XCOFF::FileNamePadSize
constexpr size_t FileNamePadSize
Definition: XCOFF.h:28
llvm::object::XCOFFCsectAuxRef::XCOFFCsectAuxRef
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt32 *Entry32)
Definition: XCOFFObjectFile.h:284
llvm::object::XCOFFSymbolRef::getLanguageIdForCFile
uint8_t getLanguageIdForCFile() const
Definition: XCOFFObjectFile.h:746
llvm::object::XCOFFBlockAuxEnt64::LineNum
support::ubig32_t LineNum
Definition: XCOFFObjectFile.h:415
llvm::object::XCOFFAuxiliaryHeader64::EntryPointAddr
support::ubig64_t EntryPointAddr
Definition: XCOFFObjectFile.h:144
llvm::object::ExceptionSectionEntry::getTrapInstAddr
uint64_t getTrapInstAddr() const
Definition: XCOFFObjectFile.h:237
llvm::object::XCOFFCsectAuxEnt64::ParameterHashIndex
support::ubig32_t ParameterHashIndex
Definition: XCOFFObjectFile.h:269
llvm::object::LoaderSectionHeader32::NumberOfImpid
support::ubig32_t NumberOfImpid
Definition: XCOFFObjectFile.h:203
llvm::object::ObjectFile::createXCOFFObjectFile
static Expected< std::unique_ptr< ObjectFile > > createXCOFFObjectFile(MemoryBufferRef Object, unsigned FileType)
Definition: XCOFFObjectFile.cpp:1187
llvm::object::XCOFFSymbolEntry32::CFileLanguageIdAndTypeId
CFileLanguageIdAndTypeIdType CFileLanguageIdAndTypeId
Definition: XCOFFObjectFile.h:693
llvm::object::XCOFFRelocation::Info
uint8_t Info
Definition: XCOFFObjectFile.h:454
llvm::object::XCOFFRelocation::isFixupIndicated
bool isFixupIndicated() const
Definition: XCOFFObjectFile.cpp:78
llvm::object::XCOFFSymbolEntry64::StorageClass
XCOFF::StorageClass StorageClass
Definition: XCOFFObjectFile.h:710
llvm::ArrayRef
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition: APInt.h:32
llvm::object::XCOFFSymbolRef::NAME_IN_STR_TBL_MAGIC
@ NAME_IN_STR_TBL_MAGIC
Definition: XCOFFObjectFile.h:716
llvm::object::XCOFFAuxiliaryHeader64::StackPageSize
uint8_t StackPageSize
Definition: XCOFFObjectFile.h:139
llvm::object::XCOFFCsectAuxEnt32::StorageMappingClass
XCOFF::StorageMappingClass StorageMappingClass
Definition: XCOFFObjectFile.h:262
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
llvm::object::XCOFFSymbolRef::getStorageClass
XCOFF::StorageClass getStorageClass() const
Definition: XCOFFObjectFile.h:758
llvm::object::ObjectFile
This class is the base class for all object file types.
Definition: ObjectFile.h:228
llvm::object::Binary
Definition: Binary.h:32
llvm::object::XCOFFTracebackTable::create
static Expected< XCOFFTracebackTable > create(const uint8_t *Ptr, uint64_t &Size)
Parse an XCOFF Traceback Table from Ptr with Size bytes.
Definition: XCOFFObjectFile.cpp:1369
llvm::object::LoaderSectionHeader64::LengthOfStrTbl
support::ubig32_t LengthOfStrTbl
Definition: XCOFFObjectFile.h:215
llvm::object::XCOFFTracebackTable::hasControlledStorage
bool hasControlledStorage() const
Definition: XCOFFObjectFile.cpp:1494
llvm::object::XCOFFRelocation::SymbolIndex
support::ubig32_t SymbolIndex
Definition: XCOFFObjectFile.h:451
uint32_t
llvm::object::XCOFFTracebackTable::getParmsType
const Optional< SmallString< 32 > > & getParmsType() const
Definition: XCOFFObjectFile.h:861
llvm::object::XCOFFSymbolEntry64::SymbolType
support::ubig16_t SymbolType
Definition: XCOFFObjectFile.h:706
llvm::XCOFF::SectionTypeFlags
SectionTypeFlags
Definition: XCOFF.h:119
llvm::object::XCOFFAuxiliaryHeader::getTDataAlignment
uint8_t getTDataAlignment() const
Definition: XCOFFObjectFile.h:64
llvm::object::XCOFFAuxiliaryHeader32
Definition: XCOFFObjectFile.h:72
llvm::object::XCOFFCsectAuxEnt64::SymbolAlignmentAndType
uint8_t SymbolAlignmentAndType
Definition: XCOFFObjectFile.h:271
llvm::object::DataRefImpl
Definition: SymbolicFile.h:35
llvm::object::LoaderSectionHeader32::OffsetToImpid
support::big32_t OffsetToImpid
Definition: XCOFFObjectFile.h:204
llvm::object::XCOFFSectionHeader32::FileOffsetToLineNumberInfo
support::ubig32_t FileOffsetToLineNumberInfo
Definition: XCOFFObjectFile.h:178
llvm::XCOFF::SymbolAuxType
SymbolAuxType
Definition: XCOFF.h:326
llvm::object::XCOFFFileAuxEnt::NameInStrTbl
NameInStrTblType NameInStrTbl
Definition: XCOFFObjectFile.h:369
llvm::object::XCOFFFileHeader64::NumberOfSections
support::ubig16_t NumberOfSections
Definition: XCOFFObjectFile.h:42
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfBSS
support::ubig16_t SecNumOfBSS
Definition: XCOFFObjectFile.h:93
llvm::object::TBVectorExt::getNumberOfVRSaved
uint8_t getNumberOfVRSaved() const
Definition: XCOFFObjectFile.cpp:1346
llvm::object::XCOFFSectAuxEntForDWARF32::Pad1
uint8_t Pad1[4]
Definition: XCOFFObjectFile.h:422
llvm::object::XCOFFSectionHeader64::NumberOfRelocations
support::ubig32_t NumberOfRelocations
Definition: XCOFFObjectFile.h:192
llvm::object::XCOFFObjectFile::classof
static bool classof(const Binary *B)
Definition: XCOFFObjectFile.h:669
llvm::object::XCOFFFunctionAuxEnt32::SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
Definition: XCOFFObjectFile.h:387
llvm::object::XCOFFCsectAuxEnt32
Definition: XCOFFObjectFile.h:257
llvm::object::XCOFFAuxiliaryHeader32::ModuleType
support::ubig16_t ModuleType
Definition: XCOFFObjectFile.h:96
llvm::object::XCOFFAuxiliaryHeader32::MaxAlignOfData
support::ubig16_t MaxAlignOfData
Definition: XCOFFObjectFile.h:95
llvm::object::XCOFFTracebackTable::getNumOfCtlAnchors
const Optional< uint32_t > & getNumOfCtlAnchors()
Definition: XCOFFObjectFile.h:866
llvm::object::XCOFFSectionHeader::getName
StringRef getName() const
Definition: XCOFFObjectFile.cpp:57
llvm::object::XCOFFCsectAuxRef::getEntryAddress
uintptr_t getEntryAddress() const
Definition: XCOFFObjectFile.h:319
llvm::object::XCOFFAuxiliaryHeader64::MaxStackSize
support::ubig64_t MaxStackSize
Definition: XCOFFObjectFile.h:145
llvm::object::XCOFFAuxiliaryHeader64::CpuType
uint8_t CpuType
Definition: XCOFFObjectFile.h:136
llvm::object::XCOFFSymbolRef::getValue32
uint32_t getValue32() const
Definition: XCOFFObjectFile.h:736
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfData
support::ubig16_t SecNumOfData
Definition: XCOFFObjectFile.h:90
llvm::object::XCOFFFileHeader32::Flags
support::ubig16_t Flags
Definition: XCOFFObjectFile.h:37
llvm::object::XCOFFTracebackTable::isAllocaUsed
bool isAllocaUsed() const
Definition: XCOFFObjectFile.cpp:1518
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfTBSS
support::ubig16_t SecNumOfTBSS
Definition: XCOFFObjectFile.h:116
llvm::object::XCOFFSectionHeader64::FileOffsetToLineNumberInfo
support::big64_t FileOffsetToLineNumberInfo
Definition: XCOFFObjectFile.h:191
llvm::object::XCOFFBlockAuxEnt64::Pad
uint8_t Pad[13]
Definition: XCOFFObjectFile.h:416
llvm::object::XCOFFExceptionAuxEnt::SizeOfFunction
support::ubig32_t SizeOfFunction
Definition: XCOFFObjectFile.h:401
llvm::GraphProgram::Name
Name
Definition: GraphWriter.h:50
llvm::object::XCOFFSectAuxEntForDWARF64::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:431
llvm::object::XCOFFSectionHeader32::SectionSize
support::ubig32_t SectionSize
Definition: XCOFFObjectFile.h:175
uint16_t
getFlags
static uint32_t getFlags(const Symbol *Sym)
Definition: TapiFile.cpp:27
llvm::object::XCOFFTracebackTable::getNumberOfFixedParms
uint8_t getNumberOfFixedParms() const
Definition: XCOFFObjectFile.cpp:1559
llvm::object::XCOFFAuxiliaryHeader64::BssDataSize
support::ubig64_t BssDataSize
Definition: XCOFFObjectFile.h:143
llvm::object::XCOFFTracebackTable::hasExtensionTable
bool hasExtensionTable() const
Definition: XCOFFObjectFile.cpp:1547
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition: Error.h:155
llvm::object::XCOFFTracebackTable::isInternalProcedure
bool isInternalProcedure() const
Definition: XCOFFObjectFile.cpp:1490
llvm::object::XCOFFAuxiliaryHeader64::DataStartAddr
support::ubig64_t DataStartAddr
Definition: XCOFFObjectFile.h:124
llvm::object::XCOFFFileHeader64::Flags
support::ubig16_t Flags
Definition: XCOFFObjectFile.h:50
llvm::object::XCOFFTracebackTable::getNumOfFPRsSaved
uint8_t getNumOfFPRsSaved() const
Definition: XCOFFObjectFile.cpp:1543
llvm::object::LoaderSectionHeader64::NumberOfImpid
support::ubig32_t NumberOfImpid
Definition: XCOFFObjectFile.h:214
llvm::object::XCOFFBlockAuxEnt32
Definition: XCOFFObjectFile.h:407
isDebugSection
static bool isDebugSection(const SectionBase &Sec)
Definition: ELFObjcopy.cpp:55
llvm::object::XCOFFRelocation32
Definition: XCOFFObjectFile.h:469
llvm::object::XCOFFBlockAuxEnt32::ReservedZeros2
uint8_t ReservedZeros2[12]
Definition: XCOFFObjectFile.h:411
llvm::XCOFF::RelocationType
RelocationType
Definition: XCOFF.h:247
llvm::object::XCOFFSectionHeader64::FileOffsetToRawData
support::big64_t FileOffsetToRawData
Definition: XCOFFObjectFile.h:189
llvm::object::XCOFFSectionHeader64::VirtualAddress
support::ubig64_t VirtualAddress
Definition: XCOFFObjectFile.h:187
llvm::object::XCOFFSymbolEntry64::CFileLanguageIdAndTypeId
CFileLanguageIdAndTypeIdType CFileLanguageIdAndTypeId
Definition: XCOFFObjectFile.h:707
llvm::object::XCOFFCsectAuxRef::getStabInfoIndex32
uint32_t getStabInfoIndex32() const
Definition: XCOFFObjectFile.h:335
llvm::object::XCOFFCsectAuxEnt64::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:275
llvm::object::XCOFFCsectAuxEnt64::Pad
uint8_t Pad
Definition: XCOFFObjectFile.h:274
llvm::object::LoaderSectionHeader64::Version
support::ubig32_t Version
Definition: XCOFFObjectFile.h:210
llvm::object::TBVectorExt::isVRSavedOnStack
bool isVRSavedOnStack() const
Definition: XCOFFObjectFile.cpp:1350
llvm::object::LoaderSectionHeader32::OffsetToStrTbl
support::big32_t OffsetToStrTbl
Definition: XCOFFObjectFile.h:206
getFeatures
static FeatureBitset getFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS, ArrayRef< SubtargetSubTypeKV > ProcDesc, ArrayRef< SubtargetFeatureKV > ProcFeatures)
Definition: MCSubtargetInfo.cpp:150
llvm::object::XCOFFTracebackTable::getControlledStorageInfoDisp
const Optional< SmallVector< uint32_t, 8 > > & getControlledStorageInfoDisp()
Definition: XCOFFObjectFile.h:867
llvm::object::XCOFFExceptionAuxEnt::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:404
llvm::object::XCOFFFunctionAuxEnt32::PtrToLineNum
support::ubig32_t PtrToLineNum
Definition: XCOFFObjectFile.h:386
llvm::object::XCOFFSectionHeader64
Definition: XCOFFObjectFile.h:184
llvm::object::XCOFFFileHeader64::TimeStamp
support::big32_t TimeStamp
Definition: XCOFFObjectFile.h:46
llvm::object::XCOFFSymbolEntry32::SymbolName
char SymbolName[XCOFF::NameSize]
Definition: XCOFFObjectFile.h:684
llvm::object::XCOFFAuxiliaryHeader32::Version
support::ubig16_t Version
The valid values are 1 and 2.
Definition: XCOFFObjectFile.h:78
llvm::object::XCOFFTracebackTable::getOnConditionDirective
uint8_t getOnConditionDirective() const
Definition: XCOFFObjectFile.cpp:1522
llvm::object::XCOFFCsectAuxEnt64::TypeChkSectNum
support::ubig16_t TypeChkSectNum
Definition: XCOFFObjectFile.h:270
llvm::object::XCOFFFileAuxEnt::Type
XCOFF::CFileStringType Type
Definition: XCOFFObjectFile.h:371
SmallVector.h
getSymbolSectionID
static unsigned getSymbolSectionID(const ObjectFile &O, SymbolRef Sym)
Definition: SymbolSize.cpp:39
llvm::COFF::isReservedSectionNumber
bool isReservedSectionNumber(int32_t SectionNumber)
Definition: COFF.h:792
llvm::object::XCOFFSectAuxEntForDWARF64
Definition: XCOFFObjectFile.h:427
llvm::object::XCOFFTracebackTable::isFloatingPointOperationLogOrAbortEnabled
bool isFloatingPointOperationLogOrAbortEnabled() const
Definition: XCOFFObjectFile.cpp:1506
llvm::object::XCOFFSymbolRef::getSymbol32
const XCOFFSymbolEntry32 * getSymbol32()
Definition: XCOFFObjectFile.h:731
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfEntryPoint
support::ubig16_t SecNumOfEntryPoint
Definition: XCOFFObjectFile.h:88
llvm::object::XCOFFFunctionAuxEnt32::SizeOfFunction
support::ubig32_t SizeOfFunction
Definition: XCOFFObjectFile.h:385
llvm::object::XCOFFSectionHeader32::PhysicalAddress
support::ubig32_t PhysicalAddress
Definition: XCOFFObjectFile.h:173
llvm::object::XCOFFSymbolRef::isCsectSymbol
bool isCsectSymbol() const
Definition: XCOFFObjectFile.cpp:1230
llvm::object::XCOFFAuxiliaryHeader::getVersion
uint16_t getVersion() const
Definition: XCOFFObjectFile.h:69
llvm::object::XCOFFRelocation::XR_BIASED_LENGTH_MASK
static constexpr uint8_t XR_BIASED_LENGTH_MASK
Definition: XCOFFObjectFile.h:447
llvm::object::ExceptionSectionEntry32
ExceptionSectionEntry< support::ubig32_t > ExceptionSectionEntry32
Definition: XCOFFObjectFile.h:245
llvm::object::XCOFFObjectFile
Definition: XCOFFObjectFile.h:474
llvm::object::XCOFFFunctionAuxEnt64
Definition: XCOFFObjectFile.h:391
llvm::object::XCOFFTracebackTable
This class provides methods to extract traceback table data from a buffer.
Definition: XCOFFObjectFile.h:799
llvm::object::LoaderSectionHeader64::OffsetToRelEnt
support::big32_t OffsetToRelEnt
Definition: XCOFFObjectFile.h:220
llvm::object::XCOFFAuxiliaryHeader32::TextStartAddr
support::ubig32_t TextStartAddr
Definition: XCOFFObjectFile.h:85
llvm::object::XCOFFCsectAuxEnt32::StabInfoIndex
support::ubig32_t StabInfoIndex
Definition: XCOFFObjectFile.h:263
llvm::SmallVectorImpl< char >
llvm::object::XCOFFSymbolRef::getSymbolType
uint16_t getSymbolType() const
Definition: XCOFFObjectFile.h:744
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:167
llvm::object::XCOFFAuxiliaryHeader32::InitDataSize
support::ubig32_t InitDataSize
Definition: XCOFFObjectFile.h:82
llvm::XCOFF::CFileStringType
CFileStringType
Definition: XCOFF.h:308
llvm::object::XCOFFFileAuxEnt::ReservedZeros
uint8_t ReservedZeros[2]
Definition: XCOFFObjectFile.h:372
llvm::object::XCOFFSymbolRef::getEntryAddress
uintptr_t getEntryAddress() const
Definition: XCOFFObjectFile.h:764
llvm::object::XCOFFFileAuxEnt::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:373
llvm::object::XCOFFCsectAuxRef::getSectionOrLength32
uint32_t getSectionOrLength32() const
Definition: XCOFFObjectFile.h:296
llvm::object::XCOFFSymbolRef::getValue
uint64_t getValue() const
Definition: XCOFFObjectFile.h:734
llvm::object::XCOFFAuxiliaryHeader::AuxiHeaderFlagMask
static constexpr uint8_t AuxiHeaderFlagMask
Definition: XCOFFObjectFile.h:55
llvm::object::XCOFFCsectAuxRef::getSectionOrLength64
uint64_t getSectionOrLength64() const
Definition: XCOFFObjectFile.h:301
llvm::object::XCOFFSectAuxEntForDWARF64::Pad
uint8_t Pad
Definition: XCOFFObjectFile.h:430
llvm::object::XCOFFAuxiliaryHeader32::EntryPointAddr
support::ubig32_t EntryPointAddr
Definition: XCOFFObjectFile.h:84
llvm::object::XCOFFSectionHeader::getSectionType
uint16_t getSectionType() const
Definition: XCOFFObjectFile.cpp:62
getSymbolName
static StringRef getSymbolName(SymbolKind SymKind)
Definition: CodeViewDebug.cpp:3112
llvm::object::ExceptionSectionEntry::getSymbolIndex
uint32_t getSymbolIndex() const
Definition: XCOFFObjectFile.h:231
llvm::object::XCOFFSectAuxEntForDWARF32::Pad2
uint8_t Pad2[6]
Definition: XCOFFObjectFile.h:424
Endian.h
llvm::object::XCOFFSymbolEntry32::NameInStrTbl
NameInStrTblType NameInStrTbl
Definition: XCOFFObjectFile.h:685
llvm::object::XCOFFSymbolEntry32::Value
support::ubig32_t Value
Definition: XCOFFObjectFile.h:688
llvm::object::XCOFFFileAuxEnt
Definition: XCOFFObjectFile.h:361
llvm::object::XCOFFSymbolRef::getSymbol64
const XCOFFSymbolEntry64 * getSymbol64()
Definition: XCOFFObjectFile.h:732
llvm::object::XCOFFAuxiliaryHeader64::XCOFF64Flag
support::ubig16_t XCOFF64Flag
Definition: XCOFFObjectFile.h:149
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfText
support::ubig16_t SecNumOfText
Definition: XCOFFObjectFile.h:127
llvm::object::XCOFFFunctionAuxEnt32::OffsetToExceptionTbl
support::ubig32_t OffsetToExceptionTbl
Definition: XCOFFObjectFile.h:384
llvm::object::XCOFFSymbolEntry32
Definition: XCOFFObjectFile.h:677
llvm::object::LoaderSectionHeader32::NumberOfSymTabEnt
support::ubig32_t NumberOfSymTabEnt
Definition: XCOFFObjectFile.h:200
llvm::object::XCOFFCsectAuxEnt64::SectionOrLengthHighByte
support::ubig32_t SectionOrLengthHighByte
Definition: XCOFFObjectFile.h:273
llvm::object::XCOFFAuxiliaryHeader64::AuxMagic
support::ubig16_t AuxMagic
Definition: XCOFFObjectFile.h:120
llvm::object::XCOFFAuxiliaryHeader32::CpuFlag
uint8_t CpuFlag
Definition: XCOFFObjectFile.h:97
llvm::object::XCOFFRelocation
Definition: XCOFFObjectFile.h:434
llvm::object::doesXCOFFTracebackTableBegin
bool doesXCOFFTracebackTableBegin(ArrayRef< uint8_t > Bytes)
Definition: XCOFFObjectFile.cpp:1311
llvm::object::XCOFFTracebackTable::hasVectorInfo
bool hasVectorInfo() const
Definition: XCOFFObjectFile.cpp:1551
Shdr
Elf_Shdr Shdr
Definition: ELFObjHandler.cpp:77
llvm::object::XCOFFSectionHeader32::Flags
support::big32_t Flags
Definition: XCOFFObjectFile.h:181
llvm::object::LoaderSectionHeader32::LengthOfImpidStrTbl
support::ubig32_t LengthOfImpidStrTbl
Definition: XCOFFObjectFile.h:202
llvm::object::XCOFFSymbolEntry32::NameInStrTblType::Magic
support::big32_t Magic
Definition: XCOFFObjectFile.h:679
llvm::object::XCOFFSymbolEntry32::NumberOfAuxEntries
uint8_t NumberOfAuxEntries
Definition: XCOFFObjectFile.h:697
llvm::object::XCOFFFileHeader32::NumberOfSections
support::ubig16_t NumberOfSections
Definition: XCOFFObjectFile.h:28
llvm::object::XCOFFFileHeader32::Magic
support::ubig16_t Magic
Definition: XCOFFObjectFile.h:27
llvm::object::XCOFFTracebackTable::getLanguageID
uint8_t getLanguageID() const
Definition: XCOFFObjectFile.cpp:1474