LLVM  15.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 
225  const char *Data;
226 };
227 
236 };
237 
245  uint8_t Pad;
247 };
248 
250 public:
251  static constexpr uint8_t SymbolTypeMask = 0x07;
252  static constexpr uint8_t SymbolAlignmentMask = 0xF8;
253  static constexpr size_t SymbolAlignmentBitOffset = 3;
254 
255  XCOFFCsectAuxRef(const XCOFFCsectAuxEnt32 *Entry32) : Entry32(Entry32) {}
256  XCOFFCsectAuxRef(const XCOFFCsectAuxEnt64 *Entry64) : Entry64(Entry64) {}
257 
258  // For getSectionOrLength(),
259  // If the symbol type is XTY_SD or XTY_CM, the csect length.
260  // If the symbol type is XTY_LD, the symbol table
261  // index of the containing csect.
262  // If the symbol type is XTY_ER, 0.
264  return Entry32 ? getSectionOrLength32() : getSectionOrLength64();
265  }
266 
268  assert(Entry32 && "32-bit interface called on 64-bit object file.");
269  return Entry32->SectionOrLength;
270  }
271 
273  assert(Entry64 && "64-bit interface called on 32-bit object file.");
274  return (static_cast<uint64_t>(Entry64->SectionOrLengthHighByte) << 32) |
275  Entry64->SectionOrLengthLowByte;
276  }
277 
278 #define GETVALUE(X) Entry32 ? Entry32->X : Entry64->X
279 
281  return GETVALUE(ParameterHashIndex);
282  }
283 
284  uint16_t getTypeChkSectNum() const { return GETVALUE(TypeChkSectNum); }
285 
288  }
289 
290  uintptr_t getEntryAddress() const {
291  return Entry32 ? reinterpret_cast<uintptr_t>(Entry32)
292  : reinterpret_cast<uintptr_t>(Entry64);
293  }
294 
296  return (getSymbolAlignmentAndType() & SymbolAlignmentMask) >>
297  SymbolAlignmentBitOffset;
298  }
299 
300  uint8_t getSymbolType() const {
301  return getSymbolAlignmentAndType() & SymbolTypeMask;
302  }
303 
304  bool isLabel() const { return getSymbolType() == XCOFF::XTY_LD; }
305 
307  assert(Entry32 && "32-bit interface called on 64-bit object file.");
308  return Entry32->StabInfoIndex;
309  }
310 
312  assert(Entry32 && "32-bit interface called on 64-bit object file.");
313  return Entry32->StabSectNum;
314  }
315 
317  assert(Entry64 && "64-bit interface called on 32-bit object file.");
318  return Entry64->AuxType;
319  }
320 
321 private:
322  uint8_t getSymbolAlignmentAndType() const {
323  return GETVALUE(SymbolAlignmentAndType);
324  }
325 
326 #undef GETVALUE
327 
328  const XCOFFCsectAuxEnt32 *Entry32 = nullptr;
329  const XCOFFCsectAuxEnt64 *Entry64 = nullptr;
330 };
331 
333  typedef struct {
334  support::big32_t Magic; // Zero indicates name in string table.
336  char NamePad[XCOFF::FileNamePadSize];
338  union {
341  };
343  uint8_t ReservedZeros[2];
344  XCOFF::SymbolAuxType AuxType; // 64-bit XCOFF file only.
345 };
346 
351  uint8_t Pad[10];
352 }; // 32-bit XCOFF file only.
353 
359  uint8_t Pad[2];
360 };
361 
366  uint8_t Pad;
367  XCOFF::SymbolAuxType AuxType; // Contains _AUX_FCN; Type of auxiliary entry
368 };
369 
374  uint8_t Pad;
375  XCOFF::SymbolAuxType AuxType; // Contains _AUX_EXCEPT; Type of auxiliary entry
376 };
377 
379  uint8_t ReservedZeros1[2];
382  uint8_t ReservedZeros2[12];
383 };
384 
387  uint8_t Pad[13];
388  XCOFF::SymbolAuxType AuxType; // Contains _AUX_SYM; Type of auxiliary entry
389 };
390 
393  uint8_t Pad1[4];
395  uint8_t Pad2[6];
396 };
397 
401  uint8_t Pad;
402  XCOFF::SymbolAuxType AuxType; // Contains _AUX_SECT; Type of Auxillary entry
403 };
404 
405 template <typename AddressType> struct XCOFFRelocation {
406  // Masks for packing/unpacking the r_rsize field of relocations.
407 
408  // The msb is used to indicate if the bits being relocated are signed or
409  // unsigned.
410  static constexpr uint8_t XR_SIGN_INDICATOR_MASK = 0x80;
411 
412  // The 2nd msb is used to indicate that the binder has replaced/modified the
413  // original instruction.
414  static constexpr uint8_t XR_FIXUP_INDICATOR_MASK = 0x40;
415 
416  // The remaining bits specify the bit length of the relocatable reference
417  // minus one.
418  static constexpr uint8_t XR_BIASED_LENGTH_MASK = 0x3f;
419 
420 public:
421  AddressType VirtualAddress;
423 
424  // Packed field, see XR_* masks for details of packing.
425  uint8_t Info;
426 
428 
429 public:
430  bool isRelocationSigned() const;
431  bool isFixupIndicated() const;
432 
433  // Returns the number of bits being relocated.
434  uint8_t getRelocatedLength() const;
435 };
436 
437 extern template struct XCOFFRelocation<llvm::support::ubig32_t>;
438 extern template struct XCOFFRelocation<llvm::support::ubig64_t>;
439 
442 
443 class XCOFFSymbolRef;
444 
445 class XCOFFObjectFile : public ObjectFile {
446 private:
447  const void *FileHeader = nullptr;
448  const void *AuxiliaryHeader = nullptr;
449  const void *SectionHeaderTable = nullptr;
450 
451  const void *SymbolTblPtr = nullptr;
452  XCOFFStringTable StringTable = {0, nullptr};
453 
454  const XCOFFSectionHeader32 *sectionHeaderTable32() const;
455  const XCOFFSectionHeader64 *sectionHeaderTable64() const;
456  template <typename T> const T *sectionHeaderTable() const;
457 
458  size_t getFileHeaderSize() const;
459  size_t getSectionHeaderSize() const;
460 
461  const XCOFFSectionHeader32 *toSection32(DataRefImpl Ref) const;
462  const XCOFFSectionHeader64 *toSection64(DataRefImpl Ref) const;
463  uintptr_t getSectionHeaderTableAddress() const;
464  uintptr_t getEndOfSymbolTableAddress() const;
465  Expected<uintptr_t> getLoaderSectionAddress() const;
466 
467  // This returns a pointer to the start of the storage for the name field of
468  // the 32-bit or 64-bit SectionHeader struct. This string is *not* necessarily
469  // null-terminated.
470  const char *getSectionNameInternal(DataRefImpl Sec) const;
471 
472  static bool isReservedSectionNumber(int16_t SectionNumber);
473 
474  // Constructor and "create" factory function. The constructor is only a thin
475  // wrapper around the base constructor. The "create" function fills out the
476  // XCOFF-specific information and performs the error checking along the way.
478  static Expected<std::unique_ptr<XCOFFObjectFile>> create(unsigned Type,
479  MemoryBufferRef MBR);
480 
481  // Helper for parsing the StringTable. Returns an 'Error' if parsing failed
482  // and an XCOFFStringTable if parsing succeeded.
483  static Expected<XCOFFStringTable> parseStringTable(const XCOFFObjectFile *Obj,
484  uint64_t Offset);
485 
486  // Make a friend so it can call the private 'create' function.
489 
490  void checkSectionAddress(uintptr_t Addr, uintptr_t TableAddr) const;
491 
492 public:
493  static constexpr uint64_t InvalidRelocOffset =
495 
496  // Interface inherited from base classes.
497  void moveSymbolNext(DataRefImpl &Symb) const override;
498  Expected<uint32_t> getSymbolFlags(DataRefImpl Symb) const override;
499  basic_symbol_iterator symbol_begin() const override;
500  basic_symbol_iterator symbol_end() const override;
501 
502  Expected<StringRef> getSymbolName(DataRefImpl Symb) const override;
503  Expected<uint64_t> getSymbolAddress(DataRefImpl Symb) const override;
504  uint64_t getSymbolValueImpl(DataRefImpl Symb) const override;
505  uint32_t getSymbolAlignment(DataRefImpl Symb) const override;
506  uint64_t getCommonSymbolSizeImpl(DataRefImpl Symb) const override;
508  Expected<section_iterator> getSymbolSection(DataRefImpl Symb) const override;
509 
510  void moveSectionNext(DataRefImpl &Sec) const override;
511  Expected<StringRef> getSectionName(DataRefImpl Sec) const override;
512  uint64_t getSectionAddress(DataRefImpl Sec) const override;
513  uint64_t getSectionIndex(DataRefImpl Sec) const override;
514  uint64_t getSectionSize(DataRefImpl Sec) const override;
516  getSectionContents(DataRefImpl Sec) const override;
517  uint64_t getSectionAlignment(DataRefImpl Sec) const override;
518  bool isSectionCompressed(DataRefImpl Sec) const override;
519  bool isSectionText(DataRefImpl Sec) const override;
520  bool isSectionData(DataRefImpl Sec) const override;
521  bool isSectionBSS(DataRefImpl Sec) const override;
522  bool isDebugSection(DataRefImpl Sec) const override;
523 
524  bool isSectionVirtual(DataRefImpl Sec) const override;
525  relocation_iterator section_rel_begin(DataRefImpl Sec) const override;
526  relocation_iterator section_rel_end(DataRefImpl Sec) const override;
527 
528  void moveRelocationNext(DataRefImpl &Rel) const override;
529 
530  /// \returns the relocation offset with the base address of the containing
531  /// section as zero, or InvalidRelocOffset on errors (such as a relocation
532  /// that does not refer to an address in any section).
533  uint64_t getRelocationOffset(DataRefImpl Rel) const override;
534  symbol_iterator getRelocationSymbol(DataRefImpl Rel) const override;
535  uint64_t getRelocationType(DataRefImpl Rel) const override;
536  void getRelocationTypeName(DataRefImpl Rel,
537  SmallVectorImpl<char> &Result) const override;
538 
539  section_iterator section_begin() const override;
540  section_iterator section_end() const override;
541  uint8_t getBytesInAddress() const override;
542  StringRef getFileFormatName() const override;
543  Triple::ArchType getArch() const override;
544  SubtargetFeatures getFeatures() const override;
545  Expected<uint64_t> getStartAddress() const override;
546  StringRef mapDebugSectionName(StringRef Name) const override;
547  bool isRelocatableObject() const override;
548 
549  // Below here is the non-inherited interface.
550  bool is64Bit() const;
551  Expected<StringRef> getRawData(const char *Start, uint64_t Size,
552  StringRef Name) const;
553 
554  const XCOFFAuxiliaryHeader32 *auxiliaryHeader32() const;
555  const XCOFFAuxiliaryHeader64 *auxiliaryHeader64() const;
556 
557  const void *getPointerToSymbolTable() const { return SymbolTblPtr; }
558 
559  Expected<StringRef> getSymbolSectionName(XCOFFSymbolRef Ref) const;
560  unsigned getSymbolSectionID(SymbolRef Sym) const;
561  XCOFFSymbolRef toSymbolRef(DataRefImpl Ref) const;
562 
563  // File header related interfaces.
564  const XCOFFFileHeader32 *fileHeader32() const;
565  const XCOFFFileHeader64 *fileHeader64() const;
566  uint16_t getMagic() const;
567  uint16_t getNumberOfSections() const;
568  int32_t getTimeStamp() const;
569 
570  // Symbol table offset and entry count are handled differently between
571  // XCOFF32 and XCOFF64.
572  uint32_t getSymbolTableOffset32() const;
573  uint64_t getSymbolTableOffset64() const;
574 
575  // Note that this value is signed and might return a negative value. Negative
576  // values are reserved for future use.
577  int32_t getRawNumberOfSymbolTableEntries32() const;
578 
579  // The sanitized value appropriate to use as an index into the symbol table.
580  uint32_t getLogicalNumberOfSymbolTableEntries32() const;
581 
582  uint32_t getNumberOfSymbolTableEntries64() const;
583 
584  // Return getLogicalNumberOfSymbolTableEntries32 or
585  // getNumberOfSymbolTableEntries64 depending on the object mode.
586  uint32_t getNumberOfSymbolTableEntries() const;
587 
588  uint32_t getSymbolIndex(uintptr_t SymEntPtr) const;
589  uint64_t getSymbolSize(DataRefImpl Symb) const;
590  uintptr_t getSymbolByIndex(uint32_t Idx) const {
591  return reinterpret_cast<uintptr_t>(SymbolTblPtr) +
593  }
594  uintptr_t getSymbolEntryAddressByIndex(uint32_t SymbolTableIndex) const;
595  Expected<StringRef> getSymbolNameByIndex(uint32_t SymbolTableIndex) const;
596 
597  Expected<StringRef> getCFileName(const XCOFFFileAuxEnt *CFileEntPtr) const;
598  uint16_t getOptionalHeaderSize() const;
599  uint16_t getFlags() const;
600 
601  // Section header table related interfaces.
602  ArrayRef<XCOFFSectionHeader32> sections32() const;
603  ArrayRef<XCOFFSectionHeader64> sections64() const;
604 
605  int32_t getSectionFlags(DataRefImpl Sec) const;
606  Expected<DataRefImpl> getSectionByNum(int16_t Num) const;
607 
608  void checkSymbolEntryPointer(uintptr_t SymbolEntPtr) const;
609 
610  // Relocation-related interfaces.
611  template <typename T>
613  getNumberOfRelocationEntries(const XCOFFSectionHeader<T> &Sec) const;
614 
615  template <typename Shdr, typename Reloc>
616  Expected<ArrayRef<Reloc>> relocations(const Shdr &Sec) const;
617 
618  // Loader section related interfaces.
619  Expected<StringRef> getImportFileTable() const;
620 
621  // This function returns string table entry.
622  Expected<StringRef> getStringTableEntry(uint32_t Offset) const;
623 
624  // This function returns the string table.
625  StringRef getStringTable() const;
626 
627  const XCOFF::SymbolAuxType *getSymbolAuxType(uintptr_t AuxEntryAddress) const;
628 
629  static uintptr_t getAdvancedSymbolEntryAddress(uintptr_t CurrentAddress,
630  uint32_t Distance);
631 
632  static bool classof(const Binary *B) { return B->isXCOFF(); }
633 }; // XCOFFObjectFile
634 
635 typedef struct {
636  uint8_t LanguageId;
637  uint8_t CpuTypeId;
639 
641  typedef struct {
642  support::big32_t Magic; // Zero indicates name in string table.
645 
646  union {
649  };
650 
651  support::ubig32_t Value; // Symbol value; storage class-dependent.
653 
654  union {
657  };
658 
661 };
662 
664  support::ubig64_t Value; // Symbol value; storage class-dependent.
667 
668  union {
671  };
672 
675 };
676 
678 public:
679  enum { NAME_IN_STR_TBL_MAGIC = 0x0 };
680 
682  const XCOFFObjectFile *OwningObjectPtr)
683  : OwningObjectPtr(OwningObjectPtr) {
684  assert(OwningObjectPtr && "OwningObjectPtr cannot be nullptr!");
685  assert(SymEntDataRef.p != 0 &&
686  "Symbol table entry pointer cannot be nullptr!");
687 
688  if (OwningObjectPtr->is64Bit())
689  Entry64 = reinterpret_cast<const XCOFFSymbolEntry64 *>(SymEntDataRef.p);
690  else
691  Entry32 = reinterpret_cast<const XCOFFSymbolEntry32 *>(SymEntDataRef.p);
692  }
693 
694  const XCOFFSymbolEntry32 *getSymbol32() { return Entry32; }
695  const XCOFFSymbolEntry64 *getSymbol64() { return Entry64; }
696 
697  uint64_t getValue() const { return Entry32 ? getValue32() : getValue64(); }
698 
699  uint32_t getValue32() const { return Entry32->Value; }
700 
701  uint64_t getValue64() const { return Entry64->Value; }
702 
703 #define GETVALUE(X) Entry32 ? Entry32->X : Entry64->X
704 
705  int16_t getSectionNumber() const { return GETVALUE(SectionNumber); }
706 
708 
709  uint8_t getLanguageIdForCFile() const {
711  "This interface is for C_FILE only.");
712  return GETVALUE(CFileLanguageIdAndTypeId.LanguageId);
713  }
714 
715  uint8_t getCPUTypeIddForCFile() const {
717  "This interface is for C_FILE only.");
718  return GETVALUE(CFileLanguageIdAndTypeId.CpuTypeId);
719  }
720 
722 
723  uint8_t getNumberOfAuxEntries() const { return GETVALUE(NumberOfAuxEntries); }
724 
725 #undef GETVALUE
726 
727  uintptr_t getEntryAddress() const {
728  return Entry32 ? reinterpret_cast<uintptr_t>(Entry32)
729  : reinterpret_cast<uintptr_t>(Entry64);
730  }
731 
733  bool isFunction() const;
734  bool isCsectSymbol() const;
736 
737 private:
738  const XCOFFObjectFile *OwningObjectPtr;
739  const XCOFFSymbolEntry32 *Entry32 = nullptr;
740  const XCOFFSymbolEntry64 *Entry64 = nullptr;
741 };
742 
743 class TBVectorExt {
744  uint16_t Data;
745  SmallString<32> VecParmsInfo;
746 
747  TBVectorExt(StringRef TBvectorStrRef, Error &Err);
748 
749 public:
750  static Expected<TBVectorExt> create(StringRef TBvectorStrRef);
751  uint8_t getNumberOfVRSaved() const;
752  bool isVRSavedOnStack() const;
753  bool hasVarArgs() const;
754  uint8_t getNumberOfVectorParms() const;
755  bool hasVMXInstruction() const;
756  SmallString<32> getVectorParmsInfo() const { return VecParmsInfo; };
757 };
758 
759 /// This class provides methods to extract traceback table data from a buffer.
760 /// The various accessors may reference the buffer provided via the constructor.
761 
763  const uint8_t *const TBPtr;
764  Optional<SmallString<32>> ParmsType;
765  Optional<uint32_t> TraceBackTableOffset;
766  Optional<uint32_t> HandlerMask;
767  Optional<uint32_t> NumOfCtlAnchors;
768  Optional<SmallVector<uint32_t, 8>> ControlledStorageInfoDisp;
769  Optional<StringRef> FunctionName;
770  Optional<uint8_t> AllocaRegister;
771  Optional<TBVectorExt> VecExt;
772  Optional<uint8_t> ExtensionTable;
773 
774  XCOFFTracebackTable(const uint8_t *Ptr, uint64_t &Size, Error &Err);
775 
776 public:
777  /// Parse an XCOFF Traceback Table from \a Ptr with \a Size bytes.
778  /// Returns an XCOFFTracebackTable upon successful parsing, otherwise an
779  /// Error is returned.
780  ///
781  /// \param[in] Ptr
782  /// A pointer that points just past the initial 4 bytes of zeros at the
783  /// beginning of an XCOFF Traceback Table.
784  ///
785  /// \param[in, out] Size
786  /// A pointer that points to the length of the XCOFF Traceback Table.
787  /// If the XCOFF Traceback Table is not parsed successfully or there are
788  /// extra bytes that are not recognized, \a Size will be updated to be the
789  /// size up to the end of the last successfully parsed field of the table.
790  static Expected<XCOFFTracebackTable> create(const uint8_t *Ptr,
791  uint64_t &Size);
792  uint8_t getVersion() const;
793  uint8_t getLanguageID() const;
794 
795  bool isGlobalLinkage() const;
796  bool isOutOfLineEpilogOrPrologue() const;
797  bool hasTraceBackTableOffset() const;
798  bool isInternalProcedure() const;
799  bool hasControlledStorage() const;
800  bool isTOCless() const;
801  bool isFloatingPointPresent() const;
803 
804  bool isInterruptHandler() const;
805  bool isFuncNamePresent() const;
806  bool isAllocaUsed() const;
807  uint8_t getOnConditionDirective() const;
808  bool isCRSaved() const;
809  bool isLRSaved() const;
810 
811  bool isBackChainStored() const;
812  bool isFixup() const;
813  uint8_t getNumOfFPRsSaved() const;
814 
815  bool hasVectorInfo() const;
816  bool hasExtensionTable() const;
817  uint8_t getNumOfGPRsSaved() const;
818 
819  uint8_t getNumberOfFixedParms() const;
820 
821  uint8_t getNumberOfFPParms() const;
822  bool hasParmsOnStack() const;
823 
824  const Optional<SmallString<32>> &getParmsType() const { return ParmsType; }
826  return TraceBackTableOffset;
827  }
828  const Optional<uint32_t> &getHandlerMask() const { return HandlerMask; }
829  const Optional<uint32_t> &getNumOfCtlAnchors() { return NumOfCtlAnchors; }
831  return ControlledStorageInfoDisp;
832  }
833  const Optional<StringRef> &getFunctionName() const { return FunctionName; }
834  const Optional<uint8_t> &getAllocaRegister() const { return AllocaRegister; }
835  const Optional<TBVectorExt> &getVectorExt() const { return VecExt; }
836  const Optional<uint8_t> &getExtensionTable() const { return ExtensionTable; }
837 };
838 
840 } // namespace object
841 } // namespace llvm
842 
843 #endif // LLVM_OBJECT_XCOFFOBJECTFILE_H
llvm::object::XCOFFBlockAuxEnt32::LineNumHi
support::ubig16_t LineNumHi
Definition: XCOFFObjectFile.h:380
llvm::object::XCOFFCsectAuxEnt32::TypeChkSectNum
support::ubig16_t TypeChkSectNum
Definition: XCOFFObjectFile.h:231
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:1436
llvm::object::XCOFFTracebackTable::isInterruptHandler
bool isInterruptHandler() const
Definition: XCOFFObjectFile.cpp:1448
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:243
llvm::object::XCOFFCsectAuxRef::getTypeChkSectNum
uint16_t getTypeChkSectNum() const
Definition: XCOFFObjectFile.h:284
llvm::object::XCOFFExceptionAuxEnt::SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
Definition: XCOFFObjectFile.h:373
llvm::object::XCOFFSectAuxEntForStat::Pad
uint8_t Pad[10]
Definition: XCOFFObjectFile.h:351
llvm::object::XCOFFFileHeader32::AuxHeaderSize
support::ubig16_t AuxHeaderSize
Definition: XCOFFObjectFile.h:36
llvm::object::XCOFFSymbolEntry32::StorageClass
XCOFF::StorageClass StorageClass
Definition: XCOFFObjectFile.h:659
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:17
llvm::object::XCOFFCsectAuxEnt32::ParameterHashIndex
support::ubig32_t ParameterHashIndex
Definition: XCOFFObjectFile.h:230
llvm::object::XCOFFSectionHeader32
Definition: XCOFFObjectFile.h:171
llvm::object::XCOFFTracebackTable::getExtensionTable
const Optional< uint8_t > & getExtensionTable() const
Definition: XCOFFObjectFile.h:836
llvm::object::XCOFFSymbolEntry32::SectionNumber
support::big16_t SectionNumber
Definition: XCOFFObjectFile.h:652
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfTBSS
support::ubig16_t SecNumOfTBSS
Definition: XCOFFObjectFile.h:148
GETVALUE
#define GETVALUE(X)
Definition: XCOFFObjectFile.h:703
llvm::object::XCOFFAuxiliaryHeader64::MaxAlignOfData
support::ubig16_t MaxAlignOfData
Definition: XCOFFObjectFile.h:133
llvm::object::XCOFFTracebackTable::hasParmsOnStack
bool hasParmsOnStack() const
Definition: XCOFFObjectFile.cpp:1507
llvm::object::XCOFFSymbolRef::getXCOFFCsectAuxRef
Expected< XCOFFCsectAuxRef > getXCOFFCsectAuxRef() const
Definition: XCOFFObjectFile.cpp:1174
llvm::object::TBVectorExt::hasVarArgs
bool hasVarArgs() const
Definition: XCOFFObjectFile.cpp:1292
llvm::object::XCOFFSymbolRef::getName
Expected< StringRef > getName() const
Definition: XCOFFObjectFile.cpp:1217
llvm::XCOFF::XTY_LD
@ XTY_LD
Label definition. Defines an entry point to an initialized csect.
Definition: XCOFF.h:227
llvm::object::XCOFFBlockAuxEnt32::LineNumLo
support::ubig16_t LineNumLo
Definition: XCOFFObjectFile.h:381
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::XCOFFSymbolRef::NAME_IN_STR_TBL_MAGIC
@ NAME_IN_STR_TBL_MAGIC
Definition: XCOFFObjectFile.h:679
llvm::object::XCOFFRelocation::VirtualAddress
AddressType VirtualAddress
Definition: XCOFFObjectFile.h:421
llvm::XCOFF::C_FILE
@ C_FILE
Definition: XCOFF.h:156
llvm::object::XCOFFTracebackTable::isFloatingPointPresent
bool isFloatingPointPresent() const
Definition: XCOFFObjectFile.cpp:1440
llvm::XCOFF::SymbolType
SymbolType
Definition: XCOFF.h:224
llvm::object::XCOFFFunctionAuxEnt64::SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
Definition: XCOFFObjectFile.h:365
llvm::object::XCOFFTracebackTable::getVersion
uint8_t getVersion() const
Definition: XCOFFObjectFile.cpp:1408
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:1473
llvm::object::XCOFFSectAuxEntForDWARF64::LengthOfSectionPortion
support::ubig64_t LengthOfSectionPortion
Definition: XCOFFObjectFile.h:399
llvm::object::LoaderSectionHeader64::OffsetToImpid
support::big64_t OffsetToImpid
Definition: XCOFFObjectFile.h:216
llvm::object::CFileLanguageIdAndTypeIdType::CpuTypeId
uint8_t CpuTypeId
Definition: XCOFFObjectFile.h:637
llvm::object::XCOFFBlockAuxEnt64::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:388
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:708
llvm::object::XCOFFTracebackTable::isOutOfLineEpilogOrPrologue
bool isOutOfLineEpilogOrPrologue() const
Definition: XCOFFObjectFile.cpp:1420
llvm::object::CFileLanguageIdAndTypeIdType::LanguageId
uint8_t LanguageId
Definition: XCOFFObjectFile.h:636
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:641
llvm::object::XCOFFRelocation64
Definition: XCOFFObjectFile.h:441
llvm::object::XCOFFSectAuxEntForDWARF32::LengthOfSectionPortion
support::ubig32_t LengthOfSectionPortion
Definition: XCOFFObjectFile.h:392
llvm::object::XCOFFFileAuxEnt::NameInStrTblType::Magic
support::big32_t Magic
Definition: XCOFFObjectFile.h:334
llvm::object::XCOFFRelocation::XR_FIXUP_INDICATOR_MASK
static constexpr uint8_t XR_FIXUP_INDICATOR_MASK
Definition: XCOFFObjectFile.h:414
llvm::object::XCOFFSectAuxEntForDWARF32::NumberOfRelocEnt
support::ubig32_t NumberOfRelocEnt
Definition: XCOFFObjectFile.h:394
llvm::object::XCOFFAuxiliaryHeader64::InitDataSize
support::ubig64_t InitDataSize
Definition: XCOFFObjectFile.h:142
llvm::object::TBVectorExt::hasVMXInstruction
bool hasVMXInstruction() const
Definition: XCOFFObjectFile.cpp:1301
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:354
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:410
llvm::object::XCOFFFileAuxEnt::Name
char Name[XCOFF::NameSize+XCOFF::FileNamePadSize]
Definition: XCOFFObjectFile.h:339
llvm::object::XCOFFCsectAuxRef::getParameterHashIndex
uint32_t getParameterHashIndex() const
Definition: XCOFFObjectFile.h:280
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:833
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:635
llvm::object::XCOFFSymbolRef::getNumberOfAuxEntries
uint8_t getNumberOfAuxEntries() const
Definition: XCOFFObjectFile.h:723
llvm::object::XCOFFFileHeader64
Definition: XCOFFObjectFile.h:40
llvm::object::XCOFFExceptionAuxEnt::OffsetToExceptionTbl
support::ubig64_t OffsetToExceptionTbl
Definition: XCOFFObjectFile.h:371
llvm::object::LoaderSectionHeader64::LengthOfImpidStrTbl
support::ubig32_t LengthOfImpidStrTbl
Definition: XCOFFObjectFile.h:213
llvm::object::XCOFFSymbolEntry64::Value
support::ubig64_t Value
Definition: XCOFFObjectFile.h:664
llvm::object::XCOFFCsectAuxRef::getSymbolType
uint8_t getSymbolType() const
Definition: XCOFFObjectFile.h:300
llvm::object::XCOFFExceptionAuxEnt
Definition: XCOFFObjectFile.h:370
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:663
llvm::object::XCOFFSymbolEntry32::SymbolType
support::ubig16_t SymbolType
Definition: XCOFFObjectFile.h:655
llvm::MemoryBufferRef
Definition: MemoryBufferRef.h:22
llvm::object::XCOFFSectAuxEntForStat::SectionLength
support::ubig32_t SectionLength
Definition: XCOFFObjectFile.h:348
llvm::object::XCOFFCsectAuxRef::getSectionOrLength
uint64_t getSectionOrLength() const
Definition: XCOFFObjectFile.h:263
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:834
llvm::object::XCOFFSymbolRef::isFunction
bool isFunction() const
Definition: XCOFFObjectFile.cpp:1130
llvm::object::XCOFFCsectAuxRef
Definition: XCOFFObjectFile.h:249
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:825
llvm::object::XCOFFSymbolRef::getValue64
uint64_t getValue64() const
Definition: XCOFFObjectFile.h:701
llvm::object::XCOFFBlockAuxEnt64
Definition: XCOFFObjectFile.h:385
llvm::object::XCOFFSymbolRef
Definition: XCOFFObjectFile.h:677
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:333
llvm::object::XCOFFSectAuxEntForDWARF32
Definition: XCOFFObjectFile.h:391
getSectionFlags
static uint32_t getSectionFlags(const MachOObjectFile &O, DataRefImpl Sec)
Definition: MachOObjectFile.cpp:179
XCOFF.h
llvm::object::XCOFFAuxiliaryHeader64::CpuFlag
uint8_t CpuFlag
Definition: XCOFFObjectFile.h:135
llvm::object::XCOFFTracebackTable::isFuncNamePresent
bool isFuncNamePresent() const
Definition: XCOFFObjectFile.cpp:1452
llvm::object::XCOFFSymbolEntry64::SectionNumber
support::big16_t SectionNumber
Definition: XCOFFObjectFile.h:666
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:1493
llvm::object::XCOFFTracebackTable::getHandlerMask
const Optional< uint32_t > & getHandlerMask() const
Definition: XCOFFObjectFile.h:828
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:367
llvm::object::XCOFFFileAuxEnt::NameInStrTblType::Offset
support::ubig32_t Offset
Definition: XCOFFObjectFile.h:335
llvm::object::XCOFFFunctionAuxEnt64::SizeOfFunction
support::ubig32_t SizeOfFunction
Definition: XCOFFObjectFile.h:364
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:756
SmallString.h
llvm::object::XCOFFAuxiliaryHeader64::FlagAndTDataAlignment
uint8_t FlagAndTDataAlignment
Definition: XCOFFObjectFile.h:140
llvm::object::XCOFFStringTable::Size
uint32_t Size
Definition: XCOFFObjectFile.h:224
llvm::object::TBVectorExt::getNumberOfVectorParms
uint8_t getNumberOfVectorParms() const
Definition: XCOFFObjectFile.cpp:1296
llvm::object::XCOFFTracebackTable::isFixup
bool isFixup() const
Definition: XCOFFObjectFile.cpp:1477
llvm::object::XCOFFSectAuxEntForStat::NumberOfLineNum
support::ubig16_t NumberOfLineNum
Definition: XCOFFObjectFile.h:350
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:183
llvm::object::XCOFFAuxiliaryHeader64::Version
support::ubig16_t Version
Definition: XCOFFObjectFile.h:121
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:311
llvm::object::XCOFFCsectAuxRef::XCOFFCsectAuxRef
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt64 *Entry64)
Definition: XCOFFObjectFile.h:256
llvm::object::XCOFFSymbolRef::getCPUTypeIddForCFile
uint8_t getCPUTypeIddForCFile() const
Definition: XCOFFObjectFile.h:715
llvm::object::XCOFFCsectAuxEnt64::SectionOrLengthLowByte
support::ubig32_t SectionOrLengthLowByte
Definition: XCOFFObjectFile.h:239
llvm::XCOFF::SymbolTableEntrySize
constexpr size_t SymbolTableEntrySize
Definition: XCOFF.h:36
llvm::object::XCOFFAuxiliaryHeader::AuxiHeaderTDataAlignmentMask
static constexpr uint8_t AuxiHeaderTDataAlignmentMask
Definition: XCOFFObjectFile.h:56
llvm::object::XCOFFTracebackTable::isGlobalLinkage
bool isGlobalLinkage() const
Definition: XCOFFObjectFile.cpp:1416
llvm::object::DataRefImpl::p
uintptr_t p
Definition: SymbolicFile.h:41
llvm::object::XCOFFObjectFile::getPointerToSymbolTable
const void * getPointerToSymbolTable() const
Definition: XCOFFObjectFile.h:557
llvm::IndexedInstrProf::Version
const uint64_t Version
Definition: InstrProf.h:1027
llvm::object::XCOFFAuxiliaryHeader32::BssDataSize
support::ubig32_t BssDataSize
Definition: XCOFFObjectFile.h:83
llvm::object::XCOFFExceptionAuxEnt::Pad
uint8_t Pad
Definition: XCOFFObjectFile.h:374
llvm::object::XCOFFAuxiliaryHeader64::TextPageSize
uint8_t TextPageSize
Definition: XCOFFObjectFile.h:137
llvm::object::XCOFFSectAuxEntForDWARF64::NumberOfRelocEnt
support::ubig64_t NumberOfRelocEnt
Definition: XCOFFObjectFile.h:400
llvm::object::XCOFFAuxiliaryHeader64::SecNumOfEntryPoint
support::ubig16_t SecNumOfEntryPoint
Definition: XCOFFObjectFile.h:126
llvm::object::XCOFFRelocation::Type
XCOFF::RelocationType Type
Definition: XCOFFObjectFile.h:427
llvm::object::XCOFFSectAuxEntForStat
Definition: XCOFFObjectFile.h:347
llvm::object::XCOFFAuxiliaryHeader64::ReservedForDebugger
support::ubig32_t ReservedForDebugger
Definition: XCOFFObjectFile.h:122
llvm::object::XCOFFCsectAuxEnt32::StabSectNum
support::ubig16_t StabSectNum
Definition: XCOFFObjectFile.h:235
llvm::object::XCOFFSymbolRef::XCOFFSymbolRef
XCOFFSymbolRef(DataRefImpl SymEntDataRef, const XCOFFObjectFile *OwningObjectPtr)
Definition: XCOFFObjectFile.h:681
llvm::object::XCOFFObjectFile::getSymbolByIndex
uintptr_t getSymbolByIndex(uint32_t Idx) const
Definition: XCOFFObjectFile.h:590
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:87
llvm::object::XCOFFCsectAuxRef::isLabel
bool isLabel() const
Definition: XCOFFObjectFile.h:304
llvm::object::XCOFFCsectAuxRef::getAuxType64
XCOFF::SymbolAuxType getAuxType64() const
Definition: XCOFFObjectFile.h:316
llvm::SmallString< 32 >
llvm::object::XCOFFCsectAuxEnt64
Definition: XCOFFObjectFile.h:238
llvm::object::XCOFFTracebackTable::isLRSaved
bool isLRSaved() const
Definition: XCOFFObjectFile.cpp:1469
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:1465
llvm::object::XCOFFSectAuxEntForStat::NumberOfRelocEnt
support::ubig16_t NumberOfRelocEnt
Definition: XCOFFObjectFile.h:349
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:286
llvm::object::XCOFFSymbolEntry32::NameInStrTblType::Offset
support::ubig32_t Offset
Definition: XCOFFObjectFile.h:643
llvm::XCOFF::StorageClass
StorageClass
Definition: XCOFF.h:154
llvm::object::TBVectorExt::create
static Expected< TBVectorExt > create(StringRef TBvectorStrRef)
Definition: XCOFFObjectFile.cpp:1260
llvm::object::XCOFFAuxiliaryHeader32::FlagAndTDataAlignment
uint8_t FlagAndTDataAlignment
Definition: XCOFFObjectFile.h:114
llvm::object::XCOFFCsectAuxEnt32::SymbolAlignmentAndType
uint8_t SymbolAlignmentAndType
Definition: XCOFFObjectFile.h:232
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:295
llvm::object::XCOFFBlockAuxEnt32::ReservedZeros1
uint8_t ReservedZeros1[2]
Definition: XCOFFObjectFile.h:379
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:225
llvm::object::XCOFFSymbolEntry64::Offset
support::ubig32_t Offset
Definition: XCOFFObjectFile.h:665
llvm::object::XCOFFTracebackTable::getNumberOfFPParms
uint8_t getNumberOfFPParms() const
Definition: XCOFFObjectFile.cpp:1502
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:835
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:674
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:366
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:229
llvm::object::LoaderSectionHeader32::LengthOfStrTbl
support::ubig32_t LengthOfStrTbl
Definition: XCOFFObjectFile.h:205
llvm::object::XCOFFFunctionAuxEnt32::Pad
uint8_t Pad[2]
Definition: XCOFFObjectFile.h:359
llvm::object::XCOFFTracebackTable::hasTraceBackTableOffset
bool hasTraceBackTableOffset() const
Definition: XCOFFObjectFile.cpp:1424
llvm::object::TBVectorExt
Definition: XCOFFObjectFile.h:743
assert
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
llvm::object::XCOFFFunctionAuxEnt64::PtrToLineNum
support::ubig64_t PtrToLineNum
Definition: XCOFFObjectFile.h:363
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:705
llvm::object::LoaderSectionHeader64::OffsetToSymTbl
support::big64_t OffsetToSymTbl
Definition: XCOFFObjectFile.h:218
llvm::object::XCOFFStringTable
Definition: XCOFFObjectFile.h:223
llvm::XCOFF::FileNamePadSize
constexpr size_t FileNamePadSize
Definition: XCOFF.h:28
llvm::object::XCOFFCsectAuxRef::XCOFFCsectAuxRef
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt32 *Entry32)
Definition: XCOFFObjectFile.h:255
llvm::object::XCOFFSymbolRef::getLanguageIdForCFile
uint8_t getLanguageIdForCFile() const
Definition: XCOFFObjectFile.h:709
llvm::object::XCOFFBlockAuxEnt64::LineNum
support::ubig32_t LineNum
Definition: XCOFFObjectFile.h:386
llvm::object::XCOFFAuxiliaryHeader64::EntryPointAddr
support::ubig64_t EntryPointAddr
Definition: XCOFFObjectFile.h:144
llvm::object::XCOFFCsectAuxEnt64::ParameterHashIndex
support::ubig32_t ParameterHashIndex
Definition: XCOFFObjectFile.h:240
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:1125
llvm::object::XCOFFSymbolEntry32::CFileLanguageIdAndTypeId
CFileLanguageIdAndTypeIdType CFileLanguageIdAndTypeId
Definition: XCOFFObjectFile.h:656
llvm::object::XCOFFRelocation::Info
uint8_t Info
Definition: XCOFFObjectFile.h:425
llvm::object::XCOFFRelocation::isFixupIndicated
bool isFixupIndicated() const
Definition: XCOFFObjectFile.cpp:78
llvm::object::XCOFFSymbolEntry64::StorageClass
XCOFF::StorageClass StorageClass
Definition: XCOFFObjectFile.h:673
llvm::ArrayRef
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition: APInt.h:32
llvm::object::XCOFFAuxiliaryHeader64::StackPageSize
uint8_t StackPageSize
Definition: XCOFFObjectFile.h:139
llvm::object::XCOFFCsectAuxEnt32::StorageMappingClass
XCOFF::StorageMappingClass StorageMappingClass
Definition: XCOFFObjectFile.h:233
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:58
llvm::object::XCOFFSymbolRef::getStorageClass
XCOFF::StorageClass getStorageClass() const
Definition: XCOFFObjectFile.h:721
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:1307
llvm::object::LoaderSectionHeader64::LengthOfStrTbl
support::ubig32_t LengthOfStrTbl
Definition: XCOFFObjectFile.h:215
llvm::object::XCOFFTracebackTable::hasControlledStorage
bool hasControlledStorage() const
Definition: XCOFFObjectFile.cpp:1432
llvm::object::XCOFFRelocation::SymbolIndex
support::ubig32_t SymbolIndex
Definition: XCOFFObjectFile.h:422
uint32_t
llvm::object::XCOFFTracebackTable::getParmsType
const Optional< SmallString< 32 > > & getParmsType() const
Definition: XCOFFObjectFile.h:824
llvm::object::XCOFFSymbolEntry64::SymbolType
support::ubig16_t SymbolType
Definition: XCOFFObjectFile.h:669
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:242
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:325
llvm::object::XCOFFFileAuxEnt::NameInStrTbl
NameInStrTblType NameInStrTbl
Definition: XCOFFObjectFile.h:340
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:1284
llvm::object::XCOFFSectAuxEntForDWARF32::Pad1
uint8_t Pad1[4]
Definition: XCOFFObjectFile.h:393
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:632
llvm::object::XCOFFFunctionAuxEnt32::SymIdxOfNextBeyond
support::big32_t SymIdxOfNextBeyond
Definition: XCOFFObjectFile.h:358
llvm::object::XCOFFCsectAuxEnt32
Definition: XCOFFObjectFile.h:228
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:829
llvm::object::XCOFFSectionHeader::getName
StringRef getName() const
Definition: XCOFFObjectFile.cpp:57
llvm::object::XCOFFCsectAuxRef::getEntryAddress
uintptr_t getEntryAddress() const
Definition: XCOFFObjectFile.h:290
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:699
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:1456
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:387
llvm::object::XCOFFExceptionAuxEnt::SizeOfFunction
support::ubig32_t SizeOfFunction
Definition: XCOFFObjectFile.h:372
llvm::GraphProgram::Name
Name
Definition: GraphWriter.h:50
llvm::object::XCOFFSectAuxEntForDWARF64::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:402
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:1497
llvm::object::XCOFFAuxiliaryHeader64::BssDataSize
support::ubig64_t BssDataSize
Definition: XCOFFObjectFile.h:143
llvm::object::XCOFFTracebackTable::hasExtensionTable
bool hasExtensionTable() const
Definition: XCOFFObjectFile.cpp:1485
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:1428
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:1481
llvm::object::LoaderSectionHeader64::NumberOfImpid
support::ubig32_t NumberOfImpid
Definition: XCOFFObjectFile.h:214
llvm::object::XCOFFBlockAuxEnt32
Definition: XCOFFObjectFile.h:378
isDebugSection
static bool isDebugSection(const SectionBase &Sec)
Definition: ELFObjcopy.cpp:55
llvm::object::XCOFFRelocation32
Definition: XCOFFObjectFile.h:440
llvm::object::XCOFFBlockAuxEnt32::ReservedZeros2
uint8_t ReservedZeros2[12]
Definition: XCOFFObjectFile.h:382
llvm::XCOFF::RelocationType
RelocationType
Definition: XCOFF.h:246
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:670
llvm::object::XCOFFCsectAuxRef::getStabInfoIndex32
uint32_t getStabInfoIndex32() const
Definition: XCOFFObjectFile.h:306
llvm::object::XCOFFCsectAuxEnt64::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:246
llvm::object::XCOFFCsectAuxEnt64::Pad
uint8_t Pad
Definition: XCOFFObjectFile.h:245
llvm::object::LoaderSectionHeader64::Version
support::ubig32_t Version
Definition: XCOFFObjectFile.h:210
llvm::object::TBVectorExt::isVRSavedOnStack
bool isVRSavedOnStack() const
Definition: XCOFFObjectFile.cpp:1288
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:830
llvm::object::XCOFFExceptionAuxEnt::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:375
llvm::object::XCOFFFunctionAuxEnt32::PtrToLineNum
support::ubig32_t PtrToLineNum
Definition: XCOFFObjectFile.h:357
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:647
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:1460
llvm::object::XCOFFCsectAuxEnt64::TypeChkSectNum
support::ubig16_t TypeChkSectNum
Definition: XCOFFObjectFile.h:241
llvm::object::XCOFFFileAuxEnt::Type
XCOFF::CFileStringType Type
Definition: XCOFFObjectFile.h:342
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:729
llvm::object::XCOFFSectAuxEntForDWARF64
Definition: XCOFFObjectFile.h:398
llvm::object::XCOFFTracebackTable::isFloatingPointOperationLogOrAbortEnabled
bool isFloatingPointOperationLogOrAbortEnabled() const
Definition: XCOFFObjectFile.cpp:1444
llvm::object::XCOFFSymbolRef::getSymbol32
const XCOFFSymbolEntry32 * getSymbol32()
Definition: XCOFFObjectFile.h:694
llvm::object::XCOFFAuxiliaryHeader32::SecNumOfEntryPoint
support::ubig16_t SecNumOfEntryPoint
Definition: XCOFFObjectFile.h:88
llvm::object::XCOFFFunctionAuxEnt32::SizeOfFunction
support::ubig32_t SizeOfFunction
Definition: XCOFFObjectFile.h:356
llvm::object::XCOFFSectionHeader32::PhysicalAddress
support::ubig32_t PhysicalAddress
Definition: XCOFFObjectFile.h:173
llvm::object::XCOFFSymbolRef::isCsectSymbol
bool isCsectSymbol() const
Definition: XCOFFObjectFile.cpp:1168
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:418
llvm::object::XCOFFObjectFile
Definition: XCOFFObjectFile.h:445
llvm::object::XCOFFFunctionAuxEnt64
Definition: XCOFFObjectFile.h:362
llvm::object::XCOFFTracebackTable
This class provides methods to extract traceback table data from a buffer.
Definition: XCOFFObjectFile.h:762
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:234
llvm::SmallVectorImpl< char >
llvm::object::XCOFFSymbolRef::getSymbolType
uint16_t getSymbolType() const
Definition: XCOFFObjectFile.h:707
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:307
llvm::object::XCOFFFileAuxEnt::ReservedZeros
uint8_t ReservedZeros[2]
Definition: XCOFFObjectFile.h:343
llvm::object::XCOFFSymbolRef::getEntryAddress
uintptr_t getEntryAddress() const
Definition: XCOFFObjectFile.h:727
llvm::object::XCOFFFileAuxEnt::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:344
llvm::object::XCOFFCsectAuxRef::getSectionOrLength32
uint32_t getSectionOrLength32() const
Definition: XCOFFObjectFile.h:267
llvm::object::XCOFFSymbolRef::getValue
uint64_t getValue() const
Definition: XCOFFObjectFile.h:697
llvm::object::XCOFFAuxiliaryHeader::AuxiHeaderFlagMask
static constexpr uint8_t AuxiHeaderFlagMask
Definition: XCOFFObjectFile.h:55
llvm::object::XCOFFCsectAuxRef::getSectionOrLength64
uint64_t getSectionOrLength64() const
Definition: XCOFFObjectFile.h:272
llvm::object::XCOFFSectAuxEntForDWARF64::Pad
uint8_t Pad
Definition: XCOFFObjectFile.h:401
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:3104
llvm::object::XCOFFSectAuxEntForDWARF32::Pad2
uint8_t Pad2[6]
Definition: XCOFFObjectFile.h:395
Endian.h
llvm::object::XCOFFSymbolEntry32::NameInStrTbl
NameInStrTblType NameInStrTbl
Definition: XCOFFObjectFile.h:648
llvm::object::XCOFFSymbolEntry32::Value
support::ubig32_t Value
Definition: XCOFFObjectFile.h:651
llvm::object::XCOFFFileAuxEnt
Definition: XCOFFObjectFile.h:332
llvm::object::XCOFFSymbolRef::getSymbol64
const XCOFFSymbolEntry64 * getSymbol64()
Definition: XCOFFObjectFile.h:695
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:355
llvm::object::XCOFFSymbolEntry32
Definition: XCOFFObjectFile.h:640
llvm::object::LoaderSectionHeader32::NumberOfSymTabEnt
support::ubig32_t NumberOfSymTabEnt
Definition: XCOFFObjectFile.h:200
llvm::object::XCOFFCsectAuxEnt64::SectionOrLengthHighByte
support::ubig32_t SectionOrLengthHighByte
Definition: XCOFFObjectFile.h:244
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:405
llvm::object::doesXCOFFTracebackTableBegin
bool doesXCOFFTracebackTableBegin(ArrayRef< uint8_t > Bytes)
Definition: XCOFFObjectFile.cpp:1249
llvm::object::XCOFFTracebackTable::hasVectorInfo
bool hasVectorInfo() const
Definition: XCOFFObjectFile.cpp:1489
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:642
llvm::object::XCOFFSymbolEntry32::NumberOfAuxEntries
uint8_t NumberOfAuxEntries
Definition: XCOFFObjectFile.h:660
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:1412