LLVM  14.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 XCOFFSectionHeader {
55  // Least significant 3 bits are reserved.
56  static constexpr unsigned SectionFlagsReservedMask = 0x7;
57 
58  // The low order 16 bits of section flags denotes the section type.
59  static constexpr unsigned SectionFlagsTypeMask = 0xffffu;
60 
61 public:
62  StringRef getName() const;
63  uint16_t getSectionType() const;
64  bool isReservedSectionType() const;
65 };
66 
67 // Explicit extern template declarations.
70 extern template struct XCOFFSectionHeader<XCOFFSectionHeader32>;
71 extern template struct XCOFFSectionHeader<XCOFFSectionHeader64>;
72 
84 };
85 
97  char Padding[4];
98 };
99 
109 };
110 
121  char Padding[16];
123 };
124 
127  const char *Data;
128 };
129 
138 };
139 
147  uint8_t Pad;
149 };
150 
152 public:
153  static constexpr uint8_t SymbolTypeMask = 0x07;
154  static constexpr uint8_t SymbolAlignmentMask = 0xF8;
155  static constexpr size_t SymbolAlignmentBitOffset = 3;
156 
157  XCOFFCsectAuxRef(const XCOFFCsectAuxEnt32 *Entry32) : Entry32(Entry32) {}
158  XCOFFCsectAuxRef(const XCOFFCsectAuxEnt64 *Entry64) : Entry64(Entry64) {}
159 
160  // For getSectionOrLength(),
161  // If the symbol type is XTY_SD or XTY_CM, the csect length.
162  // If the symbol type is XTY_LD, the symbol table
163  // index of the containing csect.
164  // If the symbol type is XTY_ER, 0.
166  return Entry32 ? getSectionOrLength32() : getSectionOrLength64();
167  }
168 
170  assert(Entry32 && "32-bit interface called on 64-bit object file.");
171  return Entry32->SectionOrLength;
172  }
173 
175  assert(Entry64 && "64-bit interface called on 32-bit object file.");
176  return (static_cast<uint64_t>(Entry64->SectionOrLengthHighByte) << 32) |
177  Entry64->SectionOrLengthLowByte;
178  }
179 
180 #define GETVALUE(X) Entry32 ? Entry32->X : Entry64->X
181 
183  return GETVALUE(ParameterHashIndex);
184  }
185 
186  uint16_t getTypeChkSectNum() const { return GETVALUE(TypeChkSectNum); }
187 
190  }
191 
192  uintptr_t getEntryAddress() const {
193  return Entry32 ? reinterpret_cast<uintptr_t>(Entry32)
194  : reinterpret_cast<uintptr_t>(Entry64);
195  }
196 
198  return (getSymbolAlignmentAndType() & SymbolAlignmentMask) >>
199  SymbolAlignmentBitOffset;
200  }
201 
202  uint8_t getSymbolType() const {
203  return getSymbolAlignmentAndType() & SymbolTypeMask;
204  }
205 
206  bool isLabel() const { return getSymbolType() == XCOFF::XTY_LD; }
207 
209  assert(Entry32 && "32-bit interface called on 64-bit object file.");
210  return Entry32->StabInfoIndex;
211  }
212 
214  assert(Entry32 && "32-bit interface called on 64-bit object file.");
215  return Entry32->StabSectNum;
216  }
217 
219  assert(Entry64 && "64-bit interface called on 32-bit object file.");
220  return Entry64->AuxType;
221  }
222 
223 private:
224  uint8_t getSymbolAlignmentAndType() const {
225  return GETVALUE(SymbolAlignmentAndType);
226  }
227 
228 #undef GETVALUE
229 
230  const XCOFFCsectAuxEnt32 *Entry32 = nullptr;
231  const XCOFFCsectAuxEnt64 *Entry64 = nullptr;
232 };
233 
235  typedef struct {
236  support::big32_t Magic; // Zero indicates name in string table.
238  char NamePad[XCOFF::FileNamePadSize];
240  union {
243  };
245  uint8_t ReservedZeros[2];
246  XCOFF::SymbolAuxType AuxType; // 64-bit XCOFF file only.
247 };
248 
253  uint8_t Pad[10];
254 }; // 32-bit XCOFF file only.
255 
256 template <typename AddressType> struct XCOFFRelocation {
257  // Masks for packing/unpacking the r_rsize field of relocations.
258 
259  // The msb is used to indicate if the bits being relocated are signed or
260  // unsigned.
261  static constexpr uint8_t XR_SIGN_INDICATOR_MASK = 0x80;
262 
263  // The 2nd msb is used to indicate that the binder has replaced/modified the
264  // original instruction.
265  static constexpr uint8_t XR_FIXUP_INDICATOR_MASK = 0x40;
266 
267  // The remaining bits specify the bit length of the relocatable reference
268  // minus one.
269  static constexpr uint8_t XR_BIASED_LENGTH_MASK = 0x3f;
270 
271 public:
272  AddressType VirtualAddress;
274 
275  // Packed field, see XR_* masks for details of packing.
276  uint8_t Info;
277 
279 
280 public:
281  bool isRelocationSigned() const;
282  bool isFixupIndicated() const;
283 
284  // Returns the number of bits being relocated.
285  uint8_t getRelocatedLength() const;
286 };
287 
288 extern template struct XCOFFRelocation<llvm::support::ubig32_t>;
289 extern template struct XCOFFRelocation<llvm::support::ubig64_t>;
290 
293 
294 class XCOFFSymbolRef;
295 
296 class XCOFFObjectFile : public ObjectFile {
297 private:
298  const void *FileHeader = nullptr;
299  const void *SectionHeaderTable = nullptr;
300 
301  const void *SymbolTblPtr = nullptr;
302  XCOFFStringTable StringTable = {0, nullptr};
303 
304  const XCOFFFileHeader32 *fileHeader32() const;
305  const XCOFFFileHeader64 *fileHeader64() const;
306 
307  const XCOFFSectionHeader32 *sectionHeaderTable32() const;
308  const XCOFFSectionHeader64 *sectionHeaderTable64() const;
309  template <typename T> const T *sectionHeaderTable() const;
310 
311  size_t getFileHeaderSize() const;
312  size_t getSectionHeaderSize() const;
313 
314  const XCOFFSectionHeader32 *toSection32(DataRefImpl Ref) const;
315  const XCOFFSectionHeader64 *toSection64(DataRefImpl Ref) const;
316  uintptr_t getSectionHeaderTableAddress() const;
317  uintptr_t getEndOfSymbolTableAddress() const;
318  Expected<uintptr_t> getLoaderSectionAddress() const;
319 
320  // This returns a pointer to the start of the storage for the name field of
321  // the 32-bit or 64-bit SectionHeader struct. This string is *not* necessarily
322  // null-terminated.
323  const char *getSectionNameInternal(DataRefImpl Sec) const;
324 
325  static bool isReservedSectionNumber(int16_t SectionNumber);
326 
327  // Constructor and "create" factory function. The constructor is only a thin
328  // wrapper around the base constructor. The "create" function fills out the
329  // XCOFF-specific information and performs the error checking along the way.
331  static Expected<std::unique_ptr<XCOFFObjectFile>> create(unsigned Type,
332  MemoryBufferRef MBR);
333 
334  // Helper for parsing the StringTable. Returns an 'Error' if parsing failed
335  // and an XCOFFStringTable if parsing succeeded.
336  static Expected<XCOFFStringTable> parseStringTable(const XCOFFObjectFile *Obj,
337  uint64_t Offset);
338 
339  // Make a friend so it can call the private 'create' function.
342 
343  void checkSectionAddress(uintptr_t Addr, uintptr_t TableAddr) const;
344 
345 public:
346  static constexpr uint64_t InvalidRelocOffset =
348 
349  // Interface inherited from base classes.
350  void moveSymbolNext(DataRefImpl &Symb) const override;
351  Expected<uint32_t> getSymbolFlags(DataRefImpl Symb) const override;
352  basic_symbol_iterator symbol_begin() const override;
353  basic_symbol_iterator symbol_end() const override;
354 
355  Expected<StringRef> getSymbolName(DataRefImpl Symb) const override;
356  Expected<uint64_t> getSymbolAddress(DataRefImpl Symb) const override;
357  uint64_t getSymbolValueImpl(DataRefImpl Symb) const override;
358  uint32_t getSymbolAlignment(DataRefImpl Symb) const override;
359  uint64_t getCommonSymbolSizeImpl(DataRefImpl Symb) const override;
361  Expected<section_iterator> getSymbolSection(DataRefImpl Symb) const override;
362 
363  void moveSectionNext(DataRefImpl &Sec) const override;
364  Expected<StringRef> getSectionName(DataRefImpl Sec) const override;
365  uint64_t getSectionAddress(DataRefImpl Sec) const override;
366  uint64_t getSectionIndex(DataRefImpl Sec) const override;
367  uint64_t getSectionSize(DataRefImpl Sec) const override;
369  getSectionContents(DataRefImpl Sec) const override;
370  uint64_t getSectionAlignment(DataRefImpl Sec) const override;
371  bool isSectionCompressed(DataRefImpl Sec) const override;
372  bool isSectionText(DataRefImpl Sec) const override;
373  bool isSectionData(DataRefImpl Sec) const override;
374  bool isSectionBSS(DataRefImpl Sec) const override;
375  bool isDebugSection(DataRefImpl Sec) const override;
376 
377  bool isSectionVirtual(DataRefImpl Sec) const override;
378  relocation_iterator section_rel_begin(DataRefImpl Sec) const override;
379  relocation_iterator section_rel_end(DataRefImpl Sec) const override;
380 
381  void moveRelocationNext(DataRefImpl &Rel) const override;
382 
383  /// \returns the relocation offset with the base address of the containing
384  /// section as zero, or InvalidRelocOffset on errors (such as a relocation
385  /// that does not refer to an address in any section).
386  uint64_t getRelocationOffset(DataRefImpl Rel) const override;
387  symbol_iterator getRelocationSymbol(DataRefImpl Rel) const override;
388  uint64_t getRelocationType(DataRefImpl Rel) const override;
389  void getRelocationTypeName(DataRefImpl Rel,
390  SmallVectorImpl<char> &Result) const override;
391 
392  section_iterator section_begin() const override;
393  section_iterator section_end() const override;
394  uint8_t getBytesInAddress() const override;
395  StringRef getFileFormatName() const override;
396  Triple::ArchType getArch() const override;
397  SubtargetFeatures getFeatures() const override;
398  Expected<uint64_t> getStartAddress() const override;
399  StringRef mapDebugSectionName(StringRef Name) const override;
400  bool isRelocatableObject() const override;
401 
402  // Below here is the non-inherited interface.
403  bool is64Bit() const;
404 
405  const void *getPointerToSymbolTable() const { return SymbolTblPtr; }
406 
407  Expected<StringRef> getSymbolSectionName(XCOFFSymbolRef Ref) const;
408  unsigned getSymbolSectionID(SymbolRef Sym) const;
409  XCOFFSymbolRef toSymbolRef(DataRefImpl Ref) const;
410 
411  // File header related interfaces.
412  uint16_t getMagic() const;
413  uint16_t getNumberOfSections() const;
414  int32_t getTimeStamp() const;
415 
416  // Symbol table offset and entry count are handled differently between
417  // XCOFF32 and XCOFF64.
418  uint32_t getSymbolTableOffset32() const;
419  uint64_t getSymbolTableOffset64() const;
420 
421  // Note that this value is signed and might return a negative value. Negative
422  // values are reserved for future use.
423  int32_t getRawNumberOfSymbolTableEntries32() const;
424 
425  // The sanitized value appropriate to use as an index into the symbol table.
426  uint32_t getLogicalNumberOfSymbolTableEntries32() const;
427 
428  uint32_t getNumberOfSymbolTableEntries64() const;
429 
430  // Return getLogicalNumberOfSymbolTableEntries32 or
431  // getNumberOfSymbolTableEntries64 depending on the object mode.
432  uint32_t getNumberOfSymbolTableEntries() const;
433 
434  uint32_t getSymbolIndex(uintptr_t SymEntPtr) const;
435  uint64_t getSymbolSize(DataRefImpl Symb) const;
436  uintptr_t getSymbolByIndex(uint32_t Idx) const {
437  return reinterpret_cast<uintptr_t>(SymbolTblPtr) +
439  }
440  uintptr_t getSymbolEntryAddressByIndex(uint32_t SymbolTableIndex) const;
441  Expected<StringRef> getSymbolNameByIndex(uint32_t SymbolTableIndex) const;
442 
443  Expected<StringRef> getCFileName(const XCOFFFileAuxEnt *CFileEntPtr) const;
444  uint16_t getOptionalHeaderSize() const;
445  uint16_t getFlags() const;
446 
447  // Section header table related interfaces.
448  ArrayRef<XCOFFSectionHeader32> sections32() const;
449  ArrayRef<XCOFFSectionHeader64> sections64() const;
450 
451  int32_t getSectionFlags(DataRefImpl Sec) const;
452  Expected<DataRefImpl> getSectionByNum(int16_t Num) const;
453 
454  void checkSymbolEntryPointer(uintptr_t SymbolEntPtr) const;
455 
456  // Relocation-related interfaces.
457  template <typename T>
459  getNumberOfRelocationEntries(const XCOFFSectionHeader<T> &Sec) const;
460 
461  template <typename Shdr, typename Reloc>
462  Expected<ArrayRef<Reloc>> relocations(const Shdr &Sec) const;
463 
464  // Loader section related interfaces.
465  Expected<StringRef> getImportFileTable() const;
466 
467  // This function returns string table entry.
468  Expected<StringRef> getStringTableEntry(uint32_t Offset) const;
469 
470  // This function returns the string table.
471  StringRef getStringTable() const;
472 
473  const XCOFF::SymbolAuxType *getSymbolAuxType(uintptr_t AuxEntryAddress) const;
474 
475  static uintptr_t getAdvancedSymbolEntryAddress(uintptr_t CurrentAddress,
476  uint32_t Distance);
477 
478  static bool classof(const Binary *B) { return B->isXCOFF(); }
479 }; // XCOFFObjectFile
480 
481 typedef struct {
482  uint8_t LanguageId;
483  uint8_t CpuTypeId;
485 
487  typedef struct {
488  support::big32_t Magic; // Zero indicates name in string table.
491 
492  union {
495  };
496 
497  support::ubig32_t Value; // Symbol value; storage class-dependent.
499 
500  union {
503  };
504 
507 };
508 
510  support::ubig64_t Value; // Symbol value; storage class-dependent.
513 
514  union {
517  };
518 
521 };
522 
524 public:
525  enum { NAME_IN_STR_TBL_MAGIC = 0x0 };
526 
528  const XCOFFObjectFile *OwningObjectPtr)
529  : OwningObjectPtr(OwningObjectPtr) {
530  assert(OwningObjectPtr && "OwningObjectPtr cannot be nullptr!");
531  assert(SymEntDataRef.p != 0 &&
532  "Symbol table entry pointer cannot be nullptr!");
533 
534  if (OwningObjectPtr->is64Bit())
535  Entry64 = reinterpret_cast<const XCOFFSymbolEntry64 *>(SymEntDataRef.p);
536  else
537  Entry32 = reinterpret_cast<const XCOFFSymbolEntry32 *>(SymEntDataRef.p);
538  }
539 
540  uint64_t getValue() const { return Entry32 ? getValue32() : getValue64(); }
541 
542  uint32_t getValue32() const { return Entry32->Value; }
543 
544  uint64_t getValue64() const { return Entry64->Value; }
545 
546 #define GETVALUE(X) Entry32 ? Entry32->X : Entry64->X
547 
548  int16_t getSectionNumber() const { return GETVALUE(SectionNumber); }
549 
551 
552  uint8_t getLanguageIdForCFile() const {
554  "This interface is for C_FILE only.");
555  return GETVALUE(CFileLanguageIdAndTypeId.LanguageId);
556  }
557 
558  uint8_t getCPUTypeIddForCFile() const {
560  "This interface is for C_FILE only.");
561  return GETVALUE(CFileLanguageIdAndTypeId.CpuTypeId);
562  }
563 
565 
566  uint8_t getNumberOfAuxEntries() const { return GETVALUE(NumberOfAuxEntries); }
567 
568 #undef GETVALUE
569 
570  uintptr_t getEntryAddress() const {
571  return Entry32 ? reinterpret_cast<uintptr_t>(Entry32)
572  : reinterpret_cast<uintptr_t>(Entry64);
573  }
574 
576  bool isFunction() const;
577  bool isCsectSymbol() const;
579 
580 private:
581  const XCOFFObjectFile *OwningObjectPtr;
582  const XCOFFSymbolEntry32 *Entry32 = nullptr;
583  const XCOFFSymbolEntry64 *Entry64 = nullptr;
584 };
585 
586 class TBVectorExt {
587  uint16_t Data;
588  SmallString<32> VecParmsInfo;
589 
590  TBVectorExt(StringRef TBvectorStrRef, Error &Err);
591 
592 public:
593  static Expected<TBVectorExt> create(StringRef TBvectorStrRef);
594  uint8_t getNumberOfVRSaved() const;
595  bool isVRSavedOnStack() const;
596  bool hasVarArgs() const;
597  uint8_t getNumberOfVectorParms() const;
598  bool hasVMXInstruction() const;
599  SmallString<32> getVectorParmsInfo() const { return VecParmsInfo; };
600 };
601 
602 /// This class provides methods to extract traceback table data from a buffer.
603 /// The various accessors may reference the buffer provided via the constructor.
604 
606  const uint8_t *const TBPtr;
607  Optional<SmallString<32>> ParmsType;
608  Optional<uint32_t> TraceBackTableOffset;
609  Optional<uint32_t> HandlerMask;
610  Optional<uint32_t> NumOfCtlAnchors;
611  Optional<SmallVector<uint32_t, 8>> ControlledStorageInfoDisp;
612  Optional<StringRef> FunctionName;
613  Optional<uint8_t> AllocaRegister;
614  Optional<TBVectorExt> VecExt;
615  Optional<uint8_t> ExtensionTable;
616 
617  XCOFFTracebackTable(const uint8_t *Ptr, uint64_t &Size, Error &Err);
618 
619 public:
620  /// Parse an XCOFF Traceback Table from \a Ptr with \a Size bytes.
621  /// Returns an XCOFFTracebackTable upon successful parsing, otherwise an
622  /// Error is returned.
623  ///
624  /// \param[in] Ptr
625  /// A pointer that points just past the initial 4 bytes of zeros at the
626  /// beginning of an XCOFF Traceback Table.
627  ///
628  /// \param[in, out] Size
629  /// A pointer that points to the length of the XCOFF Traceback Table.
630  /// If the XCOFF Traceback Table is not parsed successfully or there are
631  /// extra bytes that are not recognized, \a Size will be updated to be the
632  /// size up to the end of the last successfully parsed field of the table.
633  static Expected<XCOFFTracebackTable> create(const uint8_t *Ptr,
634  uint64_t &Size);
635  uint8_t getVersion() const;
636  uint8_t getLanguageID() const;
637 
638  bool isGlobalLinkage() const;
639  bool isOutOfLineEpilogOrPrologue() const;
640  bool hasTraceBackTableOffset() const;
641  bool isInternalProcedure() const;
642  bool hasControlledStorage() const;
643  bool isTOCless() const;
644  bool isFloatingPointPresent() const;
646 
647  bool isInterruptHandler() const;
648  bool isFuncNamePresent() const;
649  bool isAllocaUsed() const;
650  uint8_t getOnConditionDirective() const;
651  bool isCRSaved() const;
652  bool isLRSaved() const;
653 
654  bool isBackChainStored() const;
655  bool isFixup() const;
656  uint8_t getNumOfFPRsSaved() const;
657 
658  bool hasVectorInfo() const;
659  bool hasExtensionTable() const;
660  uint8_t getNumOfGPRsSaved() const;
661 
662  uint8_t getNumberOfFixedParms() const;
663 
664  uint8_t getNumberOfFPParms() const;
665  bool hasParmsOnStack() const;
666 
667  const Optional<SmallString<32>> &getParmsType() const { return ParmsType; }
669  return TraceBackTableOffset;
670  }
671  const Optional<uint32_t> &getHandlerMask() const { return HandlerMask; }
672  const Optional<uint32_t> &getNumOfCtlAnchors() { return NumOfCtlAnchors; }
674  return ControlledStorageInfoDisp;
675  }
676  const Optional<StringRef> &getFunctionName() const { return FunctionName; }
677  const Optional<uint8_t> &getAllocaRegister() const { return AllocaRegister; }
678  const Optional<TBVectorExt> &getVectorExt() const { return VecExt; }
679  const Optional<uint8_t> &getExtensionTable() const { return ExtensionTable; }
680 };
681 
683 } // namespace object
684 } // namespace llvm
685 
686 #endif // LLVM_OBJECT_XCOFFOBJECTFILE_H
llvm::Check::Size
@ Size
Definition: FileCheck.h:73
llvm::object::XCOFFCsectAuxEnt32::TypeChkSectNum
support::ubig16_t TypeChkSectNum
Definition: XCOFFObjectFile.h:133
llvm::object::XCOFFTracebackTable::isTOCless
bool isTOCless() const
Definition: XCOFFObjectFile.cpp:1392
llvm::object::XCOFFTracebackTable::isInterruptHandler
bool isInterruptHandler() const
Definition: XCOFFObjectFile.cpp:1404
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:145
llvm::object::XCOFFCsectAuxRef::getTypeChkSectNum
uint16_t getTypeChkSectNum() const
Definition: XCOFFObjectFile.h:186
llvm::object::XCOFFSectAuxEntForStat::Pad
uint8_t Pad[10]
Definition: XCOFFObjectFile.h:253
llvm::object::XCOFFFileHeader32::AuxHeaderSize
support::ubig16_t AuxHeaderSize
Definition: XCOFFObjectFile.h:36
llvm::object::XCOFFSymbolEntry32::StorageClass
XCOFF::StorageClass StorageClass
Definition: XCOFFObjectFile.h:505
llvm
This file implements support for optimizing divisions by a constant.
Definition: AllocatorList.h:23
llvm::object::XCOFFCsectAuxEnt32::ParameterHashIndex
support::ubig32_t ParameterHashIndex
Definition: XCOFFObjectFile.h:132
llvm::object::XCOFFSectionHeader32
Definition: XCOFFObjectFile.h:73
llvm::object::XCOFFTracebackTable::getExtensionTable
const Optional< uint8_t > & getExtensionTable() const
Definition: XCOFFObjectFile.h:679
llvm::object::XCOFFSymbolEntry32::SectionNumber
support::big16_t SectionNumber
Definition: XCOFFObjectFile.h:498
GETVALUE
#define GETVALUE(X)
Definition: XCOFFObjectFile.h:546
llvm::object::XCOFFTracebackTable::hasParmsOnStack
bool hasParmsOnStack() const
Definition: XCOFFObjectFile.cpp:1463
llvm::object::XCOFFSymbolRef::getXCOFFCsectAuxRef
Expected< XCOFFCsectAuxRef > getXCOFFCsectAuxRef() const
Definition: XCOFFObjectFile.cpp:1130
llvm::object::TBVectorExt::hasVarArgs
bool hasVarArgs() const
Definition: XCOFFObjectFile.cpp:1248
llvm::object::XCOFFSymbolRef::getName
Expected< StringRef > getName() const
Definition: XCOFFObjectFile.cpp:1173
llvm::XCOFF::XTY_LD
@ XTY_LD
Label definition. Defines an entry point to an initialized csect.
Definition: XCOFF.h:186
llvm::object::XCOFFSectionHeader64::PhysicalAddress
support::ubig64_t PhysicalAddress
Definition: XCOFFObjectFile.h:88
llvm::support::detail::packed_endian_specific_integral
Definition: Endian.h:206
llvm::object::LoaderSectionHeader32::Version
support::ubig32_t Version
Definition: XCOFFObjectFile.h:101
llvm::object::XCOFFFileHeader32
Definition: XCOFFObjectFile.h:26
is64Bit
static bool is64Bit(const char *name)
Definition: X86Disassembler.cpp:1019
llvm::object::XCOFFRelocation::VirtualAddress
AddressType VirtualAddress
Definition: XCOFFObjectFile.h:272
llvm::XCOFF::C_FILE
@ C_FILE
Definition: XCOFF.h:115
llvm::object::XCOFFTracebackTable::isFloatingPointPresent
bool isFloatingPointPresent() const
Definition: XCOFFObjectFile.cpp:1396
llvm::XCOFF::SymbolType
SymbolType
Definition: XCOFF.h:183
llvm::object::XCOFFTracebackTable::getVersion
uint8_t getVersion() const
Definition: XCOFFObjectFile.cpp:1364
llvm::object::XCOFFSectionHeader32::FileOffsetToRelocationInfo
support::ubig32_t FileOffsetToRelocationInfo
Definition: XCOFFObjectFile.h:79
llvm::object::XCOFFTracebackTable::isBackChainStored
bool isBackChainStored() const
Definition: XCOFFObjectFile.cpp:1429
llvm::object::LoaderSectionHeader64::OffsetToImpid
support::big64_t OffsetToImpid
Definition: XCOFFObjectFile.h:118
llvm::object::CFileLanguageIdAndTypeIdType::CpuTypeId
uint8_t CpuTypeId
Definition: XCOFFObjectFile.h:483
llvm::object::XCOFFSectionHeader::SectionFlagsReservedMask
static constexpr unsigned SectionFlagsReservedMask
Definition: XCOFFObjectFile.h:56
llvm::object::XCOFFSectionHeader
Definition: XCOFFObjectFile.h:54
llvm::object::XCOFFObjectFile::is64Bit
bool is64Bit() const
Definition: XCOFFObjectFile.cpp:688
llvm::object::XCOFFTracebackTable::isOutOfLineEpilogOrPrologue
bool isOutOfLineEpilogOrPrologue() const
Definition: XCOFFObjectFile.cpp:1376
llvm::object::CFileLanguageIdAndTypeIdType::LanguageId
uint8_t LanguageId
Definition: XCOFFObjectFile.h:482
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:487
llvm::object::XCOFFRelocation64
Definition: XCOFFObjectFile.h:292
llvm::object::XCOFFFileAuxEnt::NameInStrTblType::Magic
support::big32_t Magic
Definition: XCOFFObjectFile.h:236
llvm::object::XCOFFRelocation::XR_FIXUP_INDICATOR_MASK
static constexpr uint8_t XR_FIXUP_INDICATOR_MASK
Definition: XCOFFObjectFile.h:265
llvm::object::TBVectorExt::hasVMXInstruction
bool hasVMXInstruction() const
Definition: XCOFFObjectFile.cpp:1257
llvm::object::XCOFFSectionHeader32::FileOffsetToRawData
support::ubig32_t FileOffsetToRawData
Definition: XCOFFObjectFile.h:78
llvm::Optional
Definition: APInt.h:33
T
#define T
Definition: Mips16ISelLowering.cpp:341
llvm::object::LoaderSectionHeader32::NumberOfRelTabEnt
support::ubig32_t NumberOfRelTabEnt
Definition: XCOFFObjectFile.h:103
Offset
uint64_t Offset
Definition: ELFObjHandler.cpp:81
llvm::object::XCOFFRelocation::XR_SIGN_INDICATOR_MASK
static constexpr uint8_t XR_SIGN_INDICATOR_MASK
Definition: XCOFFObjectFile.h:261
llvm::object::XCOFFFileAuxEnt::Name
char Name[XCOFF::NameSize+XCOFF::FileNamePadSize]
Definition: XCOFFObjectFile.h:241
llvm::object::XCOFFCsectAuxRef::getParameterHashIndex
uint32_t getParameterHashIndex() const
Definition: XCOFFObjectFile.h:182
llvm::RawInstrProf::getMagic
uint64_t getMagic()
llvm::object::XCOFFTracebackTable::getFunctionName
const Optional< StringRef > & getFunctionName() const
Definition: XCOFFObjectFile.h:676
llvm::Expected
Tagged union holding either a T or a Error.
Definition: APFloat.h:42
llvm::object::CFileLanguageIdAndTypeIdType
Definition: XCOFFObjectFile.h:481
llvm::object::XCOFFSymbolRef::getNumberOfAuxEntries
uint8_t getNumberOfAuxEntries() const
Definition: XCOFFObjectFile.h:566
llvm::object::XCOFFFileHeader64
Definition: XCOFFObjectFile.h:40
llvm::object::LoaderSectionHeader64::LengthOfImpidStrTbl
support::ubig32_t LengthOfImpidStrTbl
Definition: XCOFFObjectFile.h:115
llvm::object::XCOFFSymbolEntry64::Value
support::ubig64_t Value
Definition: XCOFFObjectFile.h:510
llvm::object::XCOFFCsectAuxRef::getSymbolType
uint8_t getSymbolType() const
Definition: XCOFFObjectFile.h:202
llvm::object::LoaderSectionHeader64::NumberOfRelTabEnt
support::ubig32_t NumberOfRelTabEnt
Definition: XCOFFObjectFile.h:114
llvm::object::XCOFFFileHeader64::Magic
support::ubig16_t Magic
Definition: XCOFFObjectFile.h:41
llvm::object::XCOFFSymbolEntry64
Definition: XCOFFObjectFile.h:509
llvm::object::XCOFFSymbolEntry32::SymbolType
support::ubig16_t SymbolType
Definition: XCOFFObjectFile.h:501
llvm::MemoryBufferRef
Definition: MemoryBufferRef.h:22
llvm::object::XCOFFSectAuxEntForStat::SectionLength
support::ubig32_t SectionLength
Definition: XCOFFObjectFile.h:250
llvm::object::XCOFFCsectAuxRef::getSectionOrLength
uint64_t getSectionOrLength() const
Definition: XCOFFObjectFile.h:165
llvm::object::XCOFFSectionHeader32::NumberOfRelocations
support::ubig16_t NumberOfRelocations
Definition: XCOFFObjectFile.h:81
llvm::object::XCOFFTracebackTable::getAllocaRegister
const Optional< uint8_t > & getAllocaRegister() const
Definition: XCOFFObjectFile.h:677
llvm::object::XCOFFSymbolRef::isFunction
bool isFunction() const
Definition: XCOFFObjectFile.cpp:1090
llvm::object::XCOFFCsectAuxRef
Definition: XCOFFObjectFile.h:151
llvm::object::XCOFFSectionHeader64::NumberOfLineNumbers
support::ubig32_t NumberOfLineNumbers
Definition: XCOFFObjectFile.h:95
llvm::object::XCOFFTracebackTable::getTraceBackTableOffset
const Optional< uint32_t > & getTraceBackTableOffset() const
Definition: XCOFFObjectFile.h:668
llvm::object::XCOFFSymbolRef::getValue64
uint64_t getValue64() const
Definition: XCOFFObjectFile.h:544
llvm::object::XCOFFSymbolRef
Definition: XCOFFObjectFile.h:523
llvm::object::XCOFFSectionHeader32::NumberOfLineNumbers
support::ubig16_t NumberOfLineNumbers
Definition: XCOFFObjectFile.h:82
llvm::object::XCOFFSectionHeader32::VirtualAddress
support::ubig32_t VirtualAddress
Definition: XCOFFObjectFile.h:76
llvm::object::XCOFFFileAuxEnt::NameInStrTblType
Definition: XCOFFObjectFile.h:235
getSectionFlags
static uint32_t getSectionFlags(const MachOObjectFile &O, DataRefImpl Sec)
Definition: MachOObjectFile.cpp:175
XCOFF.h
llvm::object::XCOFFTracebackTable::isFuncNamePresent
bool isFuncNamePresent() const
Definition: XCOFFObjectFile.cpp:1408
llvm::object::XCOFFSymbolEntry64::SectionNumber
support::big16_t SectionNumber
Definition: XCOFFObjectFile.h:512
llvm::object::XCOFFTracebackTable::getNumOfGPRsSaved
uint8_t getNumOfGPRsSaved() const
Definition: XCOFFObjectFile.cpp:1449
llvm::object::XCOFFTracebackTable::getHandlerMask
const Optional< uint32_t > & getHandlerMask() const
Definition: XCOFFObjectFile.h:671
llvm::object::XCOFFFileAuxEnt::NameInStrTblType::Offset
support::ubig32_t Offset
Definition: XCOFFObjectFile.h:237
llvm::Triple::ArchType
ArchType
Definition: Triple.h:47
llvm::ModRefInfo::Ref
@ Ref
The access may reference the value stored in memory.
llvm::object::TBVectorExt::getVectorParmsInfo
SmallString< 32 > getVectorParmsInfo() const
Definition: XCOFFObjectFile.h:599
SmallString.h
llvm::object::XCOFFStringTable::Size
uint32_t Size
Definition: XCOFFObjectFile.h:126
llvm::object::TBVectorExt::getNumberOfVectorParms
uint8_t getNumberOfVectorParms() const
Definition: XCOFFObjectFile.cpp:1252
llvm::object::XCOFFTracebackTable::isFixup
bool isFixup() const
Definition: XCOFFObjectFile.cpp:1433
llvm::object::XCOFFSectAuxEntForStat::NumberOfLineNum
support::ubig16_t NumberOfLineNum
Definition: XCOFFObjectFile.h:252
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::XCOFFSectionHeader64::SectionSize
support::ubig64_t SectionSize
Definition: XCOFFObjectFile.h:90
B
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
llvm::object::XCOFFCsectAuxRef::getStabSectNum32
uint16_t getStabSectNum32() const
Definition: XCOFFObjectFile.h:213
llvm::object::XCOFFCsectAuxRef::XCOFFCsectAuxRef
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt64 *Entry64)
Definition: XCOFFObjectFile.h:158
llvm::object::XCOFFSymbolRef::getCPUTypeIddForCFile
uint8_t getCPUTypeIddForCFile() const
Definition: XCOFFObjectFile.h:558
llvm::object::XCOFFCsectAuxEnt64::SectionOrLengthLowByte
support::ubig32_t SectionOrLengthLowByte
Definition: XCOFFObjectFile.h:141
llvm::XCOFF::SymbolTableEntrySize
constexpr size_t SymbolTableEntrySize
Definition: XCOFF.h:34
llvm::object::XCOFFTracebackTable::isGlobalLinkage
bool isGlobalLinkage() const
Definition: XCOFFObjectFile.cpp:1372
llvm::object::DataRefImpl::p
uintptr_t p
Definition: SymbolicFile.h:39
llvm::object::XCOFFObjectFile::getPointerToSymbolTable
const void * getPointerToSymbolTable() const
Definition: XCOFFObjectFile.h:405
llvm::object::XCOFFRelocation::Type
XCOFF::RelocationType Type
Definition: XCOFFObjectFile.h:278
llvm::object::XCOFFSectAuxEntForStat
Definition: XCOFFObjectFile.h:249
llvm::object::XCOFFCsectAuxEnt32::StabSectNum
support::ubig16_t StabSectNum
Definition: XCOFFObjectFile.h:137
llvm::object::XCOFFSymbolRef::XCOFFSymbolRef
XCOFFSymbolRef(DataRefImpl SymEntDataRef, const XCOFFObjectFile *OwningObjectPtr)
Definition: XCOFFObjectFile.h:527
llvm::object::XCOFFObjectFile::getSymbolByIndex
uintptr_t getSymbolByIndex(uint32_t Idx) const
Definition: XCOFFObjectFile.h:436
llvm::object::LoaderSectionHeader64::NumberOfSymTabEnt
support::ubig32_t NumberOfSymTabEnt
Definition: XCOFFObjectFile.h:113
llvm::object::LoaderSectionHeader32
Definition: XCOFFObjectFile.h:100
llvm::object::XCOFFSectionHeader64::FileOffsetToRelocationInfo
support::big64_t FileOffsetToRelocationInfo
Definition: XCOFFObjectFile.h:92
llvm::XCOFF::StorageMappingClass
StorageMappingClass
Storage Mapping Class definitions.
Definition: XCOFF.h:46
llvm::object::XCOFFCsectAuxRef::isLabel
bool isLabel() const
Definition: XCOFFObjectFile.h:206
llvm::object::XCOFFCsectAuxRef::getAuxType64
XCOFF::SymbolAuxType getAuxType64() const
Definition: XCOFFObjectFile.h:218
llvm::SmallString< 32 >
llvm::object::XCOFFCsectAuxEnt64
Definition: XCOFFObjectFile.h:140
llvm::object::XCOFFTracebackTable::isLRSaved
bool isLRSaved() const
Definition: XCOFFObjectFile.cpp:1425
llvm::MachO::FileType
FileType
Defines the file type this file represents.
Definition: InterfaceFile.h:57
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:1421
llvm::object::XCOFFSectAuxEntForStat::NumberOfRelocEnt
support::ubig16_t NumberOfRelocEnt
Definition: XCOFFObjectFile.h:251
llvm::object::XCOFFFileHeader32::NumberOfSymTableEntries
support::big32_t NumberOfSymTableEntries
Definition: XCOFFObjectFile.h:35
llvm::object::XCOFFCsectAuxRef::getStorageMappingClass
XCOFF::StorageMappingClass getStorageMappingClass() const
Definition: XCOFFObjectFile.h:188
llvm::object::XCOFFSymbolEntry32::NameInStrTblType::Offset
support::ubig32_t Offset
Definition: XCOFFObjectFile.h:489
llvm::XCOFF::StorageClass
StorageClass
Definition: XCOFF.h:113
llvm::object::TBVectorExt::create
static Expected< TBVectorExt > create(StringRef TBvectorStrRef)
Definition: XCOFFObjectFile.cpp:1216
llvm::object::XCOFFCsectAuxEnt32::SymbolAlignmentAndType
uint8_t SymbolAlignmentAndType
Definition: XCOFFObjectFile.h:134
llvm::object::LoaderSectionHeader64
Definition: XCOFFObjectFile.h:111
llvm::object::XCOFFCsectAuxRef::getAlignmentLog2
uint16_t getAlignmentLog2() const
Definition: XCOFFObjectFile.h:197
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:127
llvm::object::XCOFFSymbolEntry64::Offset
support::ubig32_t Offset
Definition: XCOFFObjectFile.h:511
llvm::object::XCOFFTracebackTable::getNumberOfFPParms
uint8_t getNumberOfFPParms() const
Definition: XCOFFObjectFile.cpp:1458
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:678
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:33
llvm::object::LoaderSectionHeader64::OffsetToStrTbl
support::big64_t OffsetToStrTbl
Definition: XCOFFObjectFile.h:119
Addr
uint64_t Addr
Definition: ELFObjHandler.cpp:80
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:520
llvm::object::XCOFFSectionHeader::SectionFlagsTypeMask
static constexpr unsigned SectionFlagsTypeMask
Definition: XCOFFObjectFile.h:59
llvm::object::XCOFFCsectAuxEnt32::SectionOrLength
support::ubig32_t SectionOrLength
Definition: XCOFFObjectFile.h:131
llvm::object::LoaderSectionHeader32::LengthOfStrTbl
support::ubig32_t LengthOfStrTbl
Definition: XCOFFObjectFile.h:107
llvm::object::XCOFFTracebackTable::hasTraceBackTableOffset
bool hasTraceBackTableOffset() const
Definition: XCOFFObjectFile.cpp:1380
llvm::object::TBVectorExt
Definition: XCOFFObjectFile.h:586
assert
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
llvm::object::XCOFFSectionHeader64::Flags
support::big32_t Flags
Definition: XCOFFObjectFile.h:96
ObjectFile.h
llvm::object::XCOFFFileHeader32::TimeStamp
support::big32_t TimeStamp
Definition: XCOFFObjectFile.h:32
llvm::object::content_iterator
Definition: SymbolicFile.h:67
llvm::object::XCOFFSymbolRef::getSectionNumber
int16_t getSectionNumber() const
Definition: XCOFFObjectFile.h:548
llvm::object::LoaderSectionHeader64::OffsetToSymTbl
support::big64_t OffsetToSymTbl
Definition: XCOFFObjectFile.h:120
llvm::object::XCOFFStringTable
Definition: XCOFFObjectFile.h:125
llvm::XCOFF::FileNamePadSize
constexpr size_t FileNamePadSize
Definition: XCOFF.h:28
llvm::object::XCOFFCsectAuxRef::XCOFFCsectAuxRef
XCOFFCsectAuxRef(const XCOFFCsectAuxEnt32 *Entry32)
Definition: XCOFFObjectFile.h:157
llvm::object::XCOFFSymbolRef::getLanguageIdForCFile
uint8_t getLanguageIdForCFile() const
Definition: XCOFFObjectFile.h:552
llvm::object::XCOFFCsectAuxEnt64::ParameterHashIndex
support::ubig32_t ParameterHashIndex
Definition: XCOFFObjectFile.h:142
llvm::object::LoaderSectionHeader32::NumberOfImpid
support::ubig32_t NumberOfImpid
Definition: XCOFFObjectFile.h:105
llvm::object::ObjectFile::createXCOFFObjectFile
static Expected< std::unique_ptr< ObjectFile > > createXCOFFObjectFile(MemoryBufferRef Object, unsigned FileType)
Definition: XCOFFObjectFile.cpp:1085
llvm::object::XCOFFSymbolEntry32::CFileLanguageIdAndTypeId
CFileLanguageIdAndTypeIdType CFileLanguageIdAndTypeId
Definition: XCOFFObjectFile.h:502
llvm::object::XCOFFRelocation::Info
uint8_t Info
Definition: XCOFFObjectFile.h:276
llvm::object::XCOFFRelocation::isFixupIndicated
bool isFixupIndicated() const
Definition: XCOFFObjectFile.cpp:78
llvm::object::XCOFFSymbolEntry64::StorageClass
XCOFF::StorageClass StorageClass
Definition: XCOFFObjectFile.h:519
llvm::ArrayRef
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition: APInt.h:32
llvm::object::XCOFFCsectAuxEnt32::StorageMappingClass
XCOFF::StorageMappingClass StorageMappingClass
Definition: XCOFFObjectFile.h:135
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:564
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:1263
llvm::object::LoaderSectionHeader64::LengthOfStrTbl
support::ubig32_t LengthOfStrTbl
Definition: XCOFFObjectFile.h:117
llvm::object::XCOFFTracebackTable::hasControlledStorage
bool hasControlledStorage() const
Definition: XCOFFObjectFile.cpp:1388
llvm::object::XCOFFRelocation::SymbolIndex
support::ubig32_t SymbolIndex
Definition: XCOFFObjectFile.h:273
uint32_t
llvm::object::XCOFFTracebackTable::getParmsType
const Optional< SmallString< 32 > > & getParmsType() const
Definition: XCOFFObjectFile.h:667
llvm::object::XCOFFSymbolEntry64::SymbolType
support::ubig16_t SymbolType
Definition: XCOFFObjectFile.h:515
llvm::object::XCOFFCsectAuxEnt64::SymbolAlignmentAndType
uint8_t SymbolAlignmentAndType
Definition: XCOFFObjectFile.h:144
llvm::object::DataRefImpl
Definition: SymbolicFile.h:33
llvm::object::LoaderSectionHeader32::OffsetToImpid
support::big32_t OffsetToImpid
Definition: XCOFFObjectFile.h:106
llvm::object::XCOFFSectionHeader32::FileOffsetToLineNumberInfo
support::ubig32_t FileOffsetToLineNumberInfo
Definition: XCOFFObjectFile.h:80
llvm::XCOFF::SymbolAuxType
SymbolAuxType
Definition: XCOFF.h:282
llvm::object::XCOFFFileAuxEnt::NameInStrTbl
NameInStrTblType NameInStrTbl
Definition: XCOFFObjectFile.h:242
llvm::object::XCOFFFileHeader64::NumberOfSections
support::ubig16_t NumberOfSections
Definition: XCOFFObjectFile.h:42
llvm::object::TBVectorExt::getNumberOfVRSaved
uint8_t getNumberOfVRSaved() const
Definition: XCOFFObjectFile.cpp:1240
llvm::object::XCOFFSectionHeader64::NumberOfRelocations
support::ubig32_t NumberOfRelocations
Definition: XCOFFObjectFile.h:94
llvm::object::XCOFFObjectFile::classof
static bool classof(const Binary *B)
Definition: XCOFFObjectFile.h:478
llvm::object::XCOFFCsectAuxEnt32
Definition: XCOFFObjectFile.h:130
llvm::object::XCOFFTracebackTable::getNumOfCtlAnchors
const Optional< uint32_t > & getNumOfCtlAnchors()
Definition: XCOFFObjectFile.h:672
llvm::object::XCOFFSectionHeader::getName
StringRef getName() const
Definition: XCOFFObjectFile.cpp:57
llvm::object::XCOFFCsectAuxRef::getEntryAddress
uintptr_t getEntryAddress() const
Definition: XCOFFObjectFile.h:192
llvm::object::XCOFFSymbolRef::getValue32
uint32_t getValue32() const
Definition: XCOFFObjectFile.h:542
llvm::object::XCOFFFileHeader32::Flags
support::ubig16_t Flags
Definition: XCOFFObjectFile.h:37
llvm::object::XCOFFTracebackTable::isAllocaUsed
bool isAllocaUsed() const
Definition: XCOFFObjectFile.cpp:1412
llvm::object::XCOFFSectionHeader64::FileOffsetToLineNumberInfo
support::big64_t FileOffsetToLineNumberInfo
Definition: XCOFFObjectFile.h:93
llvm::GraphProgram::Name
Name
Definition: GraphWriter.h:52
llvm::object::XCOFFSectionHeader32::SectionSize
support::ubig32_t SectionSize
Definition: XCOFFObjectFile.h:77
uint16_t
getFlags
static uint32_t getFlags(const Symbol *Sym)
Definition: TapiFile.cpp:23
llvm::object::XCOFFTracebackTable::getNumberOfFixedParms
uint8_t getNumberOfFixedParms() const
Definition: XCOFFObjectFile.cpp:1453
llvm::object::XCOFFTracebackTable::hasExtensionTable
bool hasExtensionTable() const
Definition: XCOFFObjectFile.cpp:1441
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition: Error.h:157
llvm::object::XCOFFTracebackTable::isInternalProcedure
bool isInternalProcedure() const
Definition: XCOFFObjectFile.cpp:1384
llvm::object::XCOFFFileHeader64::Flags
support::ubig16_t Flags
Definition: XCOFFObjectFile.h:50
llvm::object::XCOFFTracebackTable::getNumOfFPRsSaved
uint8_t getNumOfFPRsSaved() const
Definition: XCOFFObjectFile.cpp:1437
llvm::object::LoaderSectionHeader64::NumberOfImpid
support::ubig32_t NumberOfImpid
Definition: XCOFFObjectFile.h:116
llvm::object::XCOFFRelocation32
Definition: XCOFFObjectFile.h:291
llvm::XCOFF::RelocationType
RelocationType
Definition: XCOFF.h:203
llvm::object::XCOFFSectionHeader64::FileOffsetToRawData
support::big64_t FileOffsetToRawData
Definition: XCOFFObjectFile.h:91
llvm::object::XCOFFSectionHeader64::VirtualAddress
support::ubig64_t VirtualAddress
Definition: XCOFFObjectFile.h:89
llvm::object::XCOFFSymbolEntry64::CFileLanguageIdAndTypeId
CFileLanguageIdAndTypeIdType CFileLanguageIdAndTypeId
Definition: XCOFFObjectFile.h:516
llvm::object::XCOFFCsectAuxRef::getStabInfoIndex32
uint32_t getStabInfoIndex32() const
Definition: XCOFFObjectFile.h:208
llvm::object::XCOFFCsectAuxEnt64::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:148
llvm::object::XCOFFCsectAuxEnt64::Pad
uint8_t Pad
Definition: XCOFFObjectFile.h:147
llvm::object::LoaderSectionHeader64::Version
support::ubig32_t Version
Definition: XCOFFObjectFile.h:112
llvm::object::TBVectorExt::isVRSavedOnStack
bool isVRSavedOnStack() const
Definition: XCOFFObjectFile.cpp:1244
llvm::object::LoaderSectionHeader32::OffsetToStrTbl
support::big32_t OffsetToStrTbl
Definition: XCOFFObjectFile.h:108
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:673
llvm::object::XCOFFSectionHeader64
Definition: XCOFFObjectFile.h:86
llvm::object::XCOFFFileHeader64::TimeStamp
support::big32_t TimeStamp
Definition: XCOFFObjectFile.h:46
llvm::object::XCOFFSymbolEntry32::SymbolName
char SymbolName[XCOFF::NameSize]
Definition: XCOFFObjectFile.h:493
llvm::object::XCOFFTracebackTable::getOnConditionDirective
uint8_t getOnConditionDirective() const
Definition: XCOFFObjectFile.cpp:1416
llvm::object::XCOFFCsectAuxEnt64::TypeChkSectNum
support::ubig16_t TypeChkSectNum
Definition: XCOFFObjectFile.h:143
llvm::object::XCOFFFileAuxEnt::Type
XCOFF::CFileStringType Type
Definition: XCOFFObjectFile.h:244
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:730
llvm::object::XCOFFTracebackTable::isFloatingPointOperationLogOrAbortEnabled
bool isFloatingPointOperationLogOrAbortEnabled() const
Definition: XCOFFObjectFile.cpp:1400
llvm::object::XCOFFSectionHeader32::PhysicalAddress
support::ubig32_t PhysicalAddress
Definition: XCOFFObjectFile.h:75
llvm::object::XCOFFSymbolRef::isCsectSymbol
bool isCsectSymbol() const
Definition: XCOFFObjectFile.cpp:1124
llvm::object::XCOFFRelocation::XR_BIASED_LENGTH_MASK
static constexpr uint8_t XR_BIASED_LENGTH_MASK
Definition: XCOFFObjectFile.h:269
llvm::object::XCOFFObjectFile
Definition: XCOFFObjectFile.h:296
llvm::max
Align max(MaybeAlign Lhs, Align Rhs)
Definition: Alignment.h:340
llvm::object::XCOFFTracebackTable
This class provides methods to extract traceback table data from a buffer.
Definition: XCOFFObjectFile.h:605
llvm::object::LoaderSectionHeader64::OffsetToRelEnt
support::big32_t OffsetToRelEnt
Definition: XCOFFObjectFile.h:122
llvm::object::XCOFFCsectAuxEnt32::StabInfoIndex
support::ubig32_t StabInfoIndex
Definition: XCOFFObjectFile.h:136
llvm::SmallVectorImpl< char >
llvm::object::XCOFFSymbolRef::getSymbolType
uint16_t getSymbolType() const
Definition: XCOFFObjectFile.h:550
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::XCOFF::CFileStringType
CFileStringType
Definition: XCOFF.h:264
llvm::object::XCOFFFileAuxEnt::ReservedZeros
uint8_t ReservedZeros[2]
Definition: XCOFFObjectFile.h:245
llvm::object::XCOFFSymbolRef::getEntryAddress
uintptr_t getEntryAddress() const
Definition: XCOFFObjectFile.h:570
llvm::object::XCOFFFileAuxEnt::AuxType
XCOFF::SymbolAuxType AuxType
Definition: XCOFFObjectFile.h:246
llvm::object::XCOFFCsectAuxRef::getSectionOrLength32
uint32_t getSectionOrLength32() const
Definition: XCOFFObjectFile.h:169
llvm::object::XCOFFSymbolRef::getValue
uint64_t getValue() const
Definition: XCOFFObjectFile.h:540
llvm::object::XCOFFCsectAuxRef::getSectionOrLength64
uint64_t getSectionOrLength64() const
Definition: XCOFFObjectFile.h:174
llvm::object::XCOFFSectionHeader::getSectionType
uint16_t getSectionType() const
Definition: XCOFFObjectFile.cpp:62
getSymbolName
static StringRef getSymbolName(SymbolKind SymKind)
Definition: CodeViewDebug.cpp:3000
Endian.h
llvm::object::XCOFFSymbolEntry32::NameInStrTbl
NameInStrTblType NameInStrTbl
Definition: XCOFFObjectFile.h:494
llvm::object::XCOFFSymbolEntry32::Value
support::ubig32_t Value
Definition: XCOFFObjectFile.h:497
llvm::object::XCOFFFileAuxEnt
Definition: XCOFFObjectFile.h:234
llvm::object::XCOFFSymbolEntry32
Definition: XCOFFObjectFile.h:486
llvm::object::LoaderSectionHeader32::NumberOfSymTabEnt
support::ubig32_t NumberOfSymTabEnt
Definition: XCOFFObjectFile.h:102
llvm::object::XCOFFCsectAuxEnt64::SectionOrLengthHighByte
support::ubig32_t SectionOrLengthHighByte
Definition: XCOFFObjectFile.h:146
llvm::object::XCOFFSymbolRef::NAME_IN_STR_TBL_MAGIC
@ NAME_IN_STR_TBL_MAGIC
Definition: XCOFFObjectFile.h:525
llvm::object::XCOFFRelocation
Definition: XCOFFObjectFile.h:256
llvm::object::doesXCOFFTracebackTableBegin
bool doesXCOFFTracebackTableBegin(ArrayRef< uint8_t > Bytes)
Definition: XCOFFObjectFile.cpp:1205
llvm::object::XCOFFTracebackTable::hasVectorInfo
bool hasVectorInfo() const
Definition: XCOFFObjectFile.cpp:1445
Shdr
Elf_Shdr Shdr
Definition: ELFObjHandler.cpp:79
llvm::object::XCOFFSectionHeader32::Flags
support::big32_t Flags
Definition: XCOFFObjectFile.h:83
llvm::object::LoaderSectionHeader32::LengthOfImpidStrTbl
support::ubig32_t LengthOfImpidStrTbl
Definition: XCOFFObjectFile.h:104
llvm::object::XCOFFSymbolEntry32::NameInStrTblType::Magic
support::big32_t Magic
Definition: XCOFFObjectFile.h:488
llvm::object::XCOFFSymbolEntry32::NumberOfAuxEntries
uint8_t NumberOfAuxEntries
Definition: XCOFFObjectFile.h:506
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:1368