LLVM  14.0.0git
Classes | Namespaces | Enumerations | Functions | Variables
XCOFF.h File Reference
#include <stddef.h>
#include <stdint.h>
Include dependency graph for XCOFF.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::SmallString< InternalLen >
 SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better as a string (e.g. More...
 
class  llvm::Expected< T >
 Tagged union holding either a T or a Error. More...
 
struct  llvm::XCOFF::TracebackTable
 
struct  llvm::XCOFF::CsectProperties
 

Namespaces

 llvm
 ---------------------— PointerInfo ------------------------------------—
 
 llvm::XCOFF
 

Enumerations

enum  llvm::XCOFF::ReservedSectionNum : int16_t { llvm::XCOFF::N_DEBUG = -2, llvm::XCOFF::N_ABS = -1, llvm::XCOFF::N_UNDEF = 0 }
 
enum  llvm::XCOFF::MagicNumber : uint16_t { llvm::XCOFF::XCOFF32 = 0x01DF, llvm::XCOFF::XCOFF64 = 0x01F7 }
 
enum  llvm::XCOFF::StorageMappingClass : uint8_t {
  llvm::XCOFF::XMC_PR = 0, llvm::XCOFF::XMC_RO = 1, llvm::XCOFF::XMC_DB = 2, llvm::XCOFF::XMC_GL = 6,
  llvm::XCOFF::XMC_XO = 7, llvm::XCOFF::XMC_SV = 8, llvm::XCOFF::XMC_SV64 = 17, llvm::XCOFF::XMC_SV3264 = 18,
  llvm::XCOFF::XMC_TI = 12, llvm::XCOFF::XMC_TB = 13, llvm::XCOFF::XMC_RW = 5, llvm::XCOFF::XMC_TC0 = 15,
  llvm::XCOFF::XMC_TC = 3, llvm::XCOFF::XMC_TD = 16, llvm::XCOFF::XMC_DS = 10, llvm::XCOFF::XMC_UA = 4,
  llvm::XCOFF::XMC_BS = 9, llvm::XCOFF::XMC_UC = 11, llvm::XCOFF::XMC_TL = 20, llvm::XCOFF::XMC_UL = 21,
  llvm::XCOFF::XMC_TE = 22
}
 Storage Mapping Class definitions. More...
 
enum  llvm::XCOFF::SectionTypeFlags : int32_t {
  llvm::XCOFF::STYP_PAD = 0x0008, llvm::XCOFF::STYP_DWARF = 0x0010, llvm::XCOFF::STYP_TEXT = 0x0020, llvm::XCOFF::STYP_DATA = 0x0040,
  llvm::XCOFF::STYP_BSS = 0x0080, llvm::XCOFF::STYP_EXCEPT = 0x0100, llvm::XCOFF::STYP_INFO = 0x0200, llvm::XCOFF::STYP_TDATA = 0x0400,
  llvm::XCOFF::STYP_TBSS = 0x0800, llvm::XCOFF::STYP_LOADER = 0x1000, llvm::XCOFF::STYP_DEBUG = 0x2000, llvm::XCOFF::STYP_TYPCHK = 0x4000,
  llvm::XCOFF::STYP_OVRFLO = 0x8000
}
 
enum  llvm::XCOFF::DwarfSectionSubtypeFlags : int32_t {
  llvm::XCOFF::SSUBTYP_DWINFO = 0x1'0000, llvm::XCOFF::SSUBTYP_DWLINE = 0x2'0000, llvm::XCOFF::SSUBTYP_DWPBNMS = 0x3'0000, llvm::XCOFF::SSUBTYP_DWPBTYP = 0x4'0000,
  llvm::XCOFF::SSUBTYP_DWARNGE = 0x5'0000, llvm::XCOFF::SSUBTYP_DWABREV = 0x6'0000, llvm::XCOFF::SSUBTYP_DWSTR = 0x7'0000, llvm::XCOFF::SSUBTYP_DWRNGES = 0x8'0000,
  llvm::XCOFF::SSUBTYP_DWLOC = 0x9'0000, llvm::XCOFF::SSUBTYP_DWFRAME = 0xA'0000, llvm::XCOFF::SSUBTYP_DWMAC = 0xB'0000
}
 Values for defining the section subtype of sections of type STYP_DWARF as they would appear in the (signed, 32-bit) s_flags field of the section header structure, contributing to the 16 most significant bits. More...
 
enum  llvm::XCOFF::StorageClass : uint8_t {
  llvm::XCOFF::C_FILE = 103, llvm::XCOFF::C_BINCL = 108, llvm::XCOFF::C_EINCL = 109, llvm::XCOFF::C_GSYM = 128,
  llvm::XCOFF::C_STSYM = 133, llvm::XCOFF::C_BCOMM = 135, llvm::XCOFF::C_ECOMM = 137, llvm::XCOFF::C_ENTRY = 141,
  llvm::XCOFF::C_BSTAT = 143, llvm::XCOFF::C_ESTAT = 144, llvm::XCOFF::C_GTLS = 145, llvm::XCOFF::C_STTLS = 146,
  llvm::XCOFF::C_DWARF = 112, llvm::XCOFF::C_LSYM = 129, llvm::XCOFF::C_PSYM = 130, llvm::XCOFF::C_RSYM = 131,
  llvm::XCOFF::C_RPSYM = 132, llvm::XCOFF::C_ECOML = 136, llvm::XCOFF::C_FUN = 142, llvm::XCOFF::C_EXT = 2,
  llvm::XCOFF::C_WEAKEXT = 111, llvm::XCOFF::C_NULL = 0, llvm::XCOFF::C_STAT = 3, llvm::XCOFF::C_BLOCK = 100,
  llvm::XCOFF::C_FCN = 101, llvm::XCOFF::C_HIDEXT = 107, llvm::XCOFF::C_INFO = 110, llvm::XCOFF::C_DECL = 140,
  llvm::XCOFF::C_AUTO = 1, llvm::XCOFF::C_REG = 4, llvm::XCOFF::C_EXTDEF = 5, llvm::XCOFF::C_LABEL = 6,
  llvm::XCOFF::C_ULABEL = 7, llvm::XCOFF::C_MOS = 8, llvm::XCOFF::C_ARG = 9, llvm::XCOFF::C_STRTAG = 10,
  llvm::XCOFF::C_MOU = 11, llvm::XCOFF::C_UNTAG = 12, llvm::XCOFF::C_TPDEF = 13, llvm::XCOFF::C_USTATIC = 14,
  llvm::XCOFF::C_ENTAG = 15, llvm::XCOFF::C_MOE = 16, llvm::XCOFF::C_REGPARM = 17, llvm::XCOFF::C_FIELD = 18,
  llvm::XCOFF::C_EOS = 102, llvm::XCOFF::C_LINE = 104, llvm::XCOFF::C_ALIAS = 105, llvm::XCOFF::C_HIDDEN = 106,
  llvm::XCOFF::C_EFCN = 255, llvm::XCOFF::C_TCSYM = 134
}
 
enum  llvm::XCOFF::SymbolType : uint8_t { llvm::XCOFF::XTY_ER = 0, llvm::XCOFF::XTY_SD = 1, llvm::XCOFF::XTY_LD = 2, llvm::XCOFF::XTY_CM = 3 }
 
enum  llvm::XCOFF::VisibilityType : uint16_t {
  llvm::XCOFF::SYM_V_UNSPECIFIED = 0x0000, llvm::XCOFF::SYM_V_INTERNAL = 0x1000, llvm::XCOFF::SYM_V_HIDDEN = 0x2000, llvm::XCOFF::SYM_V_PROTECTED = 0x3000,
  llvm::XCOFF::SYM_V_EXPORTED = 0x4000
}
 Values for visibility as they would appear when encoded in the high 4 bits of the 16-bit unsigned n_type field of symbol table entries. Valid for 32-bit XCOFF only when the vstamp in the auxiliary header is greater than 1. More...
 
enum  llvm::XCOFF::RelocationType : uint8_t {
  llvm::XCOFF::R_POS = 0x00, llvm::XCOFF::R_RL = 0x0c, llvm::XCOFF::R_RLA = 0x0d, llvm::XCOFF::R_NEG = 0x01,
  llvm::XCOFF::R_REL = 0x02, llvm::XCOFF::R_TOC = 0x03, llvm::XCOFF::R_TRL = 0x12, llvm::XCOFF::R_TRLA,
  llvm::XCOFF::R_GL = 0x05, llvm::XCOFF::R_TCL = 0x06, llvm::XCOFF::R_REF = 0x0f, llvm::XCOFF::R_BA = 0x08,
  llvm::XCOFF::R_BR = 0x0a, llvm::XCOFF::R_RBA = 0x18, llvm::XCOFF::R_RBR = 0x1a, llvm::XCOFF::R_TLS = 0x20,
  llvm::XCOFF::R_TLS_IE = 0x21, llvm::XCOFF::R_TLS_LD = 0x22, llvm::XCOFF::R_TLS_LE = 0x23, llvm::XCOFF::R_TLSM = 0x24,
  llvm::XCOFF::R_TLSML = 0x25, llvm::XCOFF::R_TOCU = 0x30, llvm::XCOFF::R_TOCL = 0x31
}
 
enum  llvm::XCOFF::CFileStringType : uint8_t { llvm::XCOFF::XFT_FN = 0, llvm::XCOFF::XFT_CT = 1, llvm::XCOFF::XFT_CV = 2, llvm::XCOFF::XFT_CD = 128 }
 
enum  llvm::XCOFF::CFileLangId : uint8_t { llvm::XCOFF::TB_C = 0, llvm::XCOFF::TB_CPLUSPLUS = 9 }
 
enum  llvm::XCOFF::CFileCpuId : uint8_t { llvm::XCOFF::TCPU_PPC64 = 2, llvm::XCOFF::TCPU_COM = 3, llvm::XCOFF::TCPU_970 = 19 }
 
enum  llvm::XCOFF::SymbolAuxType : uint8_t {
  llvm::XCOFF::AUX_EXCEPT = 255, llvm::XCOFF::AUX_FCN = 254, llvm::XCOFF::AUX_SYM = 253, llvm::XCOFF::AUX_FILE = 252,
  llvm::XCOFF::AUX_CSECT = 251, llvm::XCOFF::AUX_SECT = 250
}
 
enum  llvm::XCOFF::ExtendedTBTableFlag : uint8_t {
  llvm::XCOFF::TB_OS1 = 0x80, llvm::XCOFF::TB_RESERVED = 0x40, llvm::XCOFF::TB_SSP_CANARY = 0x20, llvm::XCOFF::TB_OS2 = 0x10,
  llvm::XCOFF::TB_EH_INFO = 0x08, llvm::XCOFF::TB_LONGTBTABLE2 = 0x01
}
 

Functions

StringRef llvm::XCOFF::getMappingClassString (XCOFF::StorageMappingClass SMC)
 
StringRef llvm::XCOFF::getRelocationTypeString (XCOFF::RelocationType Type)
 
Expected< SmallString< 32 > > llvm::XCOFF::parseParmsType (uint32_t Value, unsigned FixedParmsNum, unsigned FloatingParmsNum)
 
Expected< SmallString< 32 > > llvm::XCOFF::parseParmsTypeWithVecInfo (uint32_t Value, unsigned FixedParmsNum, unsigned FloatingParmsNum, unsigned VectorParmsNum)
 
Expected< SmallString< 32 > > llvm::XCOFF::parseVectorParmsType (uint32_t Value, unsigned ParmsNum)
 
StringRef llvm::XCOFF::getNameForTracebackTableLanguageId (TracebackTable::LanguageID LangId)
 
SmallString< 32 > llvm::XCOFF::getExtendedTBTableFlagString (uint8_t Flag)
 

Variables

constexpr size_t llvm::XCOFF::FileNamePadSize = 6
 
constexpr size_t llvm::XCOFF::NameSize = 8
 
constexpr size_t llvm::XCOFF::FileHeaderSize32 = 20
 
constexpr size_t llvm::XCOFF::FileHeaderSize64 = 24
 
constexpr size_t llvm::XCOFF::SectionHeaderSize32 = 40
 
constexpr size_t llvm::XCOFF::SectionHeaderSize64 = 72
 
constexpr size_t llvm::XCOFF::SymbolTableEntrySize = 18
 
constexpr size_t llvm::XCOFF::RelocationSerializationSize32 = 10
 
constexpr size_t llvm::XCOFF::RelocationSerializationSize64 = 14
 
constexpr uint16_t llvm::XCOFF::RelocOverflow = 65535
 
constexpr uint8_t llvm::XCOFF::AllocRegNo = 31