LLVM: llvm::XCOFF Namespace Reference (original) (raw)

Enumerations
enum ReservedSectionNum : int16_t { N_DEBUG = -2 , N_ABS = -1 , N_UNDEF = 0 }
enum MagicNumber : uint16_t { XCOFF32 = 0x01DF , XCOFF64 = 0x01F7 }
enum AuxHeaderFlags64 : uint16_t { SHR_SYMTAB = 0x8000 , FORK_POLICY = 0x4000 , FORK_COR = 0x2000 }
enum XCOFFInterpret : uint16_t { OLD_XCOFF_INTERPRET = 1 , NEW_XCOFF_INTERPRET = 2 }
enum FileFlag : uint16_t { F_RELFLG = 0x0001 , F_EXEC = 0x0002 , F_LNNO = 0x0004 , F_LSYMS = 0x0008 , F_FDPR_PROF = 0x0010 , F_FDPR_OPTI = 0x0020 , F_DSA = 0x0040 , F_DEP_1 = 0x0080 , F_VARPG = 0x0100 , F_LPTEXT = 0x0400 , F_LPDATA = 0x0800 , F_DYNLOAD = 0x1000 , F_SHROBJ = 0x2000 , F_LOADONLY, F_DEP_2 = 0x8000 }
enum StorageMappingClass : uint8_t { XMC_PR = 0 , XMC_RO = 1 , XMC_DB = 2 , XMC_GL = 6 , XMC_XO = 7 , XMC_SV = 8 , XMC_SV64 = 17 , XMC_SV3264 = 18 , XMC_TI = 12 , XMC_TB = 13 , XMC_RW = 5 , XMC_TC0 = 15 , XMC_TC = 3 , XMC_TD = 16 , XMC_DS = 10 , XMC_UA = 4 , XMC_BS = 9 , XMC_UC = 11 , XMC_TL = 20 , XMC_UL = 21 , XMC_TE = 22 }
Storage Mapping Class definitions. More...
enum SectionTypeFlags : int32_t { STYP_PAD = 0x0008 , STYP_DWARF = 0x0010 , STYP_TEXT = 0x0020 , STYP_DATA = 0x0040 , STYP_BSS = 0x0080 , STYP_EXCEPT = 0x0100 , STYP_INFO = 0x0200 , STYP_TDATA = 0x0400 , STYP_TBSS = 0x0800 , STYP_LOADER = 0x1000 , STYP_DEBUG = 0x2000 , STYP_TYPCHK = 0x4000 , STYP_OVRFLO = 0x8000 }
enum DwarfSectionSubtypeFlags : int32_t { SSUBTYP_DWINFO = 0x1'0000 , SSUBTYP_DWLINE = 0x2'0000 , SSUBTYP_DWPBNMS = 0x3'0000 , SSUBTYP_DWPBTYP = 0x4'0000 , SSUBTYP_DWARNGE = 0x5'0000 , SSUBTYP_DWABREV = 0x6'0000 , SSUBTYP_DWSTR = 0x7'0000 , SSUBTYP_DWRNGES = 0x8'0000 , SSUBTYP_DWLOC = 0x9'0000 , SSUBTYP_DWFRAME = 0xA'0000 , 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 StorageClass : uint8_t { C_FILE = 103 , C_BINCL = 108 , C_EINCL = 109 , C_GSYM = 128 , C_STSYM = 133 , C_BCOMM = 135 , C_ECOMM = 137 , C_ENTRY = 141 , C_BSTAT = 143 , C_ESTAT = 144 , C_GTLS = 145 , C_STTLS = 146 , C_DWARF = 112 , C_LSYM = 129 , C_PSYM = 130 , C_RSYM = 131 , C_RPSYM = 132 , C_ECOML = 136 , C_FUN = 142 , C_EXT = 2 , C_WEAKEXT = 111 , C_NULL = 0 , C_STAT = 3 , C_BLOCK = 100 , C_FCN = 101 , C_HIDEXT = 107 , C_INFO = 110 , C_DECL = 140 , C_AUTO = 1 , C_REG = 4 , C_EXTDEF = 5 , C_LABEL = 6 , C_ULABEL = 7 , C_MOS = 8 , C_ARG = 9 , C_STRTAG = 10 , C_MOU = 11 , C_UNTAG = 12 , C_TPDEF = 13 , C_USTATIC = 14 , C_ENTAG = 15 , C_MOE = 16 , C_REGPARM = 17 , C_FIELD = 18 , C_EOS = 102 , C_LINE = 104 , C_ALIAS = 105 , C_HIDDEN = 106 , C_EFCN = 255 , C_TCSYM = 134 }
enum SymbolType : uint8_t { XTY_ER = 0 , XTY_SD = 1 , XTY_LD = 2 , XTY_CM = 3 }
enum VisibilityType : uint16_t { SYM_V_UNSPECIFIED = 0x0000 , SYM_V_INTERNAL = 0x1000 , SYM_V_HIDDEN = 0x2000 , SYM_V_PROTECTED = 0x3000 , 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. More...
enum RelocationType : uint8_t { R_POS = 0x00 , R_RL = 0x0c , R_RLA = 0x0d , R_NEG = 0x01 , R_REL = 0x02 , R_TOC = 0x03 , R_TRL = 0x12 , R_TRLA, R_GL = 0x05 , R_TCL = 0x06 , R_REF = 0x0f , R_BA = 0x08 , R_BR = 0x0a , R_RBA = 0x18 , R_RBR = 0x1a , R_TLS = 0x20 , R_TLS_IE = 0x21 , R_TLS_LD = 0x22 , R_TLS_LE = 0x23 , R_TLSM = 0x24 , R_TLSML = 0x25 , R_TOCU = 0x30 , R_TOCL = 0x31 }
enum CFileStringType : uint8_t { XFT_FN = 0 , XFT_CT = 1 , XFT_CV = 2 , XFT_CD = 128 }
enum CFileLangId : uint8_t { TB_C = 0 , TB_Fortran = 1 , TB_CPLUSPLUS = 9 }
enum CFileCpuId : uint8_t { TCPU_INVALID = 0 , TCPU_PPC = 1 , TCPU_PPC64 = 2 , TCPU_COM = 3 , TCPU_PWR = 4 , TCPU_ANY = 5 , TCPU_601 = 6 , TCPU_603 = 7 , TCPU_604 = 8 , TCPU_620 = 16 , TCPU_A35 = 17 , TCPU_PWR5 = 18 , TCPU_970 = 19 , TCPU_PWR6 = 20 , TCPU_PWR5X = 22 , TCPU_PWR6E = 23 , TCPU_PWR7 = 24 , TCPU_PWR8 = 25 , TCPU_PWR9 = 26 , TCPU_PWR10 = 27 , TCPU_PWRX = 224 }
enum SymbolAuxType : uint8_t { AUX_EXCEPT = 255 , AUX_FCN = 254 , AUX_SYM = 253 , AUX_FILE = 252 , AUX_CSECT = 251 , AUX_SECT = 250 }
enum ExtendedTBTableFlag : uint8_t { TB_OS1 = 0x80 , TB_RESERVED = 0x40 , TB_SSP_CANARY = 0x20 , TB_OS2 = 0x10 , TB_EH_INFO = 0x08 , TB_LONGTBTABLE2 = 0x01 }
Functions
LLVM_ABI StringRef getMappingClassString (XCOFF::StorageMappingClass SMC)
LLVM_ABI StringRef getRelocationTypeString (XCOFF::RelocationType Type)
LLVM_ABI StringRef getTCPUString (XCOFF::CFileCpuId TCPU)
LLVM_ABI Expected< SmallString< 32 > > parseParmsType (uint32_t Value, unsigned FixedParmsNum, unsigned FloatingParmsNum)
LLVM_ABI Expected< SmallString< 32 > > parseParmsTypeWithVecInfo (uint32_t Value, unsigned FixedParmsNum, unsigned FloatingParmsNum, unsigned VectorParmsNum)
LLVM_ABI Expected< SmallString< 32 > > parseVectorParmsType (uint32_t Value, unsigned ParmsNum)
LLVM_ABI StringRef getNameForTracebackTableLanguageId (TracebackTable::LanguageID LangId)
LLVM_ABI SmallString< 32 > getExtendedTBTableFlagString (uint8_t Flag)
LLVM_ABI XCOFF::CFileCpuId getCpuID (StringRef CPU)
Variables
constexpr size_t FileNamePadSize = 6
constexpr size_t NameSize = 8
constexpr size_t AuxFileEntNameSize = 14
constexpr size_t FileHeaderSize32 = 20
constexpr size_t FileHeaderSize64 = 24
constexpr size_t AuxFileHeaderSize32 = 72
constexpr size_t AuxFileHeaderSize64 = 110
constexpr size_t AuxFileHeaderSizeShort = 28
constexpr size_t SectionHeaderSize32 = 40
constexpr size_t SectionHeaderSize64 = 72
constexpr size_t SymbolTableEntrySize = 18
constexpr size_t RelocationSerializationSize32 = 10
constexpr size_t RelocationSerializationSize64 = 14
constexpr size_t ExceptionSectionEntrySize32 = 6
constexpr size_t ExceptionSectionEntrySize64 = 10
constexpr uint16_t RelocOverflow = 65535
constexpr uint8_t AllocRegNo = 31
static constexpr uint8_t XR_SIGN_INDICATOR_MASK = 0x80
static constexpr uint8_t XR_FIXUP_INDICATOR_MASK = 0x40
static constexpr uint8_t XR_BIASED_LENGTH_MASK = 0x3f
constexpr uint16_t VISIBILITY_MASK = 0x7000

AuxHeaderFlags64

Enumerator
SHR_SYMTAB At exec time, create shared symbol table for program (main program only).
FORK_POLICY Forktree policy specified (main program only).
FORK_COR If _AOUT_FORK_POLICY is set, specify copy-on-reference if this bit is set. Specify copy-on- write otherwise. If _AOUT_FORK_POLICY is 0, this bit is reserved for future use and should be set to 0.

Definition at line 64 of file XCOFF.h.

CFileCpuId

Enumerator
TCPU_INVALID Invalid id - assumes POWER for old objects.
TCPU_PPC PowerPC common architecture 32 bit mode.
TCPU_PPC64 PowerPC common architecture 64-bit mode.
TCPU_COM POWER and PowerPC architecture common.
TCPU_PWR POWER common architecture objects.
TCPU_ANY Mixture of any incompatable POWER and PowerPC architecture implementations.
TCPU_601 601 implementation of PowerPC architecture.
TCPU_603 603 implementation of PowerPC architecture.
TCPU_604 604 implementation of PowerPC architecture.
TCPU_620
TCPU_A35
TCPU_PWR5
TCPU_970
TCPU_PWR6
TCPU_PWR5X
TCPU_PWR6E
TCPU_PWR7
TCPU_PWR8
TCPU_PWR9
TCPU_PWR10
TCPU_PWRX RS2 implementation of POWER architecture.

Definition at line 338 of file XCOFF.h.

CFileLangId

Enumerator
TB_C C language.
TB_Fortran Fortran language.
TB_CPLUSPLUS C++ language.

Definition at line 331 of file XCOFF.h.

CFileStringType

Enumerator
XFT_FN Specifies the source-file name.
XFT_CT Specifies the compiler time stamp.
XFT_CV Specifies the compiler version number.
XFT_CD Specifies compiler-defined information.

Definition at line 324 of file XCOFF.h.

DwarfSectionSubtypeFlags

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.

Defined in the system header scnhdr.h.

Enumerator
SSUBTYP_DWINFO DWARF info section.
SSUBTYP_DWLINE DWARF line section.
SSUBTYP_DWPBNMS DWARF pubnames section.
SSUBTYP_DWPBTYP DWARF pubtypes section.
SSUBTYP_DWARNGE DWARF aranges section.
SSUBTYP_DWABREV DWARF abbrev section.
SSUBTYP_DWSTR DWARF str section.
SSUBTYP_DWRNGES DWARF ranges section.
SSUBTYP_DWLOC DWARF loc section.
SSUBTYP_DWFRAME DWARF frame section.
SSUBTYP_DWMAC DWARF macinfo section.

Definition at line 155 of file XCOFF.h.

ExtendedTBTableFlag

Enumerator
TB_OS1 Reserved for OS use.
TB_RESERVED Reserved for compiler.
TB_SSP_CANARY stack smasher canary present on stack.
TB_OS2 Reserved for OS use.
TB_EH_INFO Exception handling info present.
TB_LONGTBTABLE2 Additional tbtable extension exists.

Definition at line 485 of file XCOFF.h.

FileFlag

Enumerator
F_RELFLG relocation info stripped from file
F_EXEC file is executable (i.e., it has a loader section)
F_LNNO line numbers stripped from file
F_LSYMS local symbols stripped from file
F_FDPR_PROF file was profiled with FDPR
F_FDPR_OPTI file was reordered with FDPR
F_DSA file uses Dynamic Segment Allocation (32-bit only)
F_DEP_1 Data Execution Protection bit 1.
F_VARPG executable requests using variable size pages
F_LPTEXT executable requires large pages for text
F_LPDATA executable requires large pages for data
F_DYNLOAD file is dynamically loadable and executable (equivalent to F_EXEC on AIX)
F_SHROBJ file is a shared object
F_LOADONLY file can be loaded by the system loader, but it is ignored by the linker if it is a member of an archive.
F_DEP_2 Data Execution Protection bit 2.

Definition at line 79 of file XCOFF.h.

MagicNumber

Enumerator
XCOFF32
XCOFF64

Definition at line 49 of file XCOFF.h.

RelocationType

Enumerator
R_POS Positive relocation. Provides the address of the referenced symbol.
R_RL Positive indirect load relocation. Modifiable instruction.
R_RLA Positive load address relocation. Modifiable instruction.
R_NEG Negative relocation. Provides the negative of the address of the referenced symbol.
R_REL Relative to self relocation. Provides a displacement value between the address of the referenced symbol and the address being relocated.
R_TOC Relative to the TOC relocation. Provides a displacement that is the difference between the address of the referenced symbol and the TOC anchor csect.
R_TRL TOC relative indirect load relocation. Similar to R_TOC, but not modifiable instruction.
R_TRLA Relative to the TOC or to the thread-local storage base relocation. Compilers are not permitted to generate this relocation type. It is the result of a reversible transformation by the linker of an R_TOC relation that turned a load instruction into an add-immediate instruction.
R_GL Global linkage-external TOC address relocation. Provides the address of the external TOC associated with a defined external symbol.
R_TCL Local object TOC address relocation. Provides the address of the local TOC entry of a defined external symbol.
R_REF A non-relocating relocation. Used to prevent the binder from garbage collecting a csect (such as code used for dynamic initialization of non-local statics) for which another csect has an implicit dependency.
R_BA Branch absolute relocation. Provides the address of the referenced symbol. References a non-modifiable instruction.
R_BR Branch relative to self relocation. Provides the displacement that is the difference between the address of the referenced symbol and the address of the referenced branch instruction. References a non-modifiable instruction.
R_RBA Branch absolute relocation. Similar to R_BA but references a modifiable instruction.
R_RBR Branch relative to self relocation. Similar to the R_BR relocation type, but references a modifiable instruction.
R_TLS General-dynamic reference to TLS symbol.
R_TLS_IE Initial-exec reference to TLS symbol.
R_TLS_LD Local-dynamic reference to TLS symbol.
R_TLS_LE Local-exec reference to TLS symbol.
R_TLSM Module reference to TLS. Provides a handle for the module containing the referenced symbol.
R_TLSML Module reference to the local TLS storage.
R_TOCU Relative to TOC upper. Specifies the high-order 16 bits of a large code model TOC-relative relocation.
R_TOCL Relative to TOC lower. Specifies the low-order 16 bits of a large code model TOC-relative relocation.

Definition at line 263 of file XCOFF.h.

ReservedSectionNum

Enumerator
N_DEBUG
N_ABS
N_UNDEF

Definition at line 47 of file XCOFF.h.

SectionTypeFlags

enum llvm::XCOFF::SectionTypeFlags : int32_t

Enumerator
STYP_PAD
STYP_DWARF
STYP_TEXT
STYP_DATA
STYP_BSS
STYP_EXCEPT
STYP_INFO
STYP_TDATA
STYP_TBSS
STYP_LOADER
STYP_DEBUG
STYP_TYPCHK
STYP_OVRFLO

Definition at line 135 of file XCOFF.h.

StorageClass

Enumerator
C_FILE
C_BINCL
C_EINCL
C_GSYM
C_STSYM
C_BCOMM
C_ECOMM
C_ENTRY
C_BSTAT
C_ESTAT
C_GTLS
C_STTLS
C_DWARF
C_LSYM
C_PSYM
C_RSYM
C_RPSYM
C_ECOML
C_FUN
C_EXT
C_WEAKEXT
C_NULL
C_STAT
C_BLOCK
C_FCN
C_HIDEXT
C_INFO
C_DECL
C_AUTO
C_REG
C_EXTDEF
C_LABEL
C_ULABEL
C_MOS
C_ARG
C_STRTAG
C_MOU
C_UNTAG
C_TPDEF
C_USTATIC
C_ENTAG
C_MOE
C_REGPARM
C_FIELD
C_EOS
C_LINE
C_ALIAS
C_HIDDEN
C_EFCN
C_TCSYM

Definition at line 171 of file XCOFF.h.

StorageMappingClass

Storage Mapping Class definitions.

Enumerator
XMC_PR Program Code.
XMC_RO Read Only Constant.
XMC_DB Debug Dictionary Table.
XMC_GL Global Linkage (Interfile Interface Code)
XMC_XO Extended Operation (Pseudo Machine Instruction)
XMC_SV Supervisor Call (32-bit process only)
XMC_SV64 Supervisor Call for 64-bit process.
XMC_SV3264 Supervisor Call for both 32- and 64-bit processes.
XMC_TI Traceback Index csect.
XMC_TB Traceback Table csect.
XMC_RW Read Write Data.
XMC_TC0 TOC Anchor for TOC Addressability.
XMC_TC General TOC item.
XMC_TD Scalar data item in the TOC.
XMC_DS Descriptor csect.
XMC_UA Unclassified - Treated as Read Write.
XMC_BS BSS class (uninitialized static internal)
XMC_UC Un-named Fortran Common.
XMC_TL Initialized thread-local variable.
XMC_UL Uninitialized thread-local variable.
XMC_TE Symbol mapped at the end of TOC.

Definition at line 104 of file XCOFF.h.

SymbolAuxType

Enumerator
AUX_EXCEPT Identifies an exception auxiliary entry.
AUX_FCN Identifies a function auxiliary entry.
AUX_SYM Identifies a symbol auxiliary entry.
AUX_FILE Identifies a file auxiliary entry.
AUX_CSECT Identifies a csect auxiliary entry.
AUX_SECT Identifies a SECT auxiliary entry.

Definition at line 366 of file XCOFF.h.

SymbolType

Enumerator
XTY_ER External reference.
XTY_SD Csect definition for initialized storage.
XTY_LD Label definition. Defines an entry point to an initialized csect.
XTY_CM Common csect definition. For uninitialized storage.

Definition at line 241 of file XCOFF.h.

VisibilityType

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.

Enumerator
SYM_V_UNSPECIFIED
SYM_V_INTERNAL
SYM_V_HIDDEN
SYM_V_PROTECTED
SYM_V_EXPORTED

Definition at line 252 of file XCOFF.h.

XCOFFInterpret

Enumerator
OLD_XCOFF_INTERPRET
NEW_XCOFF_INTERPRET

Definition at line 74 of file XCOFF.h.

getCpuID()

Definition at line 112 of file XCOFF.cpp.

References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), llvm::Default, llvm::PPC::normalizeCPUName(), TCPU_601, TCPU_603, TCPU_604, TCPU_620, TCPU_970, TCPU_ANY, TCPU_COM, TCPU_INVALID, TCPU_PWR10, TCPU_PWR5, TCPU_PWR5X, TCPU_PWR6, TCPU_PWR6E, TCPU_PWR7, TCPU_PWR8, and TCPU_PWR9.

getExtendedTBTableFlagString()

getMappingClassString()

getNameForTracebackTableLanguageId()

getRelocationTypeString()

Definition at line 55 of file XCOFF.cpp.

References R_BA, R_BR, R_GL, R_NEG, R_POS, R_RBA, R_RBR, R_REF, R_REL, R_RL, R_RLA, R_TCL, R_TLS, R_TLS_IE, R_TLS_LD, R_TLS_LE, R_TLSM, R_TLSML, R_TOC, R_TOCL, R_TOCU, R_TRL, R_TRLA, and RELOC_CASE.

Referenced by llvm::object::XCOFFObjectFile::getRelocationTypeName().

getTCPUString()

parseParmsType()

parseParmsTypeWithVecInfo()

parseVectorParmsType()

AllocRegNo

uint8_t llvm::XCOFF::AllocRegNo = 31 constexpr

Definition at line 45 of file XCOFF.h.

AuxFileEntNameSize

size_t llvm::XCOFF::AuxFileEntNameSize = 14 constexpr

Definition at line 31 of file XCOFF.h.

AuxFileHeaderSize32

size_t llvm::XCOFF::AuxFileHeaderSize32 = 72 constexpr

Definition at line 34 of file XCOFF.h.

AuxFileHeaderSize64

size_t llvm::XCOFF::AuxFileHeaderSize64 = 110 constexpr

Definition at line 35 of file XCOFF.h.

AuxFileHeaderSizeShort

size_t llvm::XCOFF::AuxFileHeaderSizeShort = 28 constexpr

Definition at line 36 of file XCOFF.h.

ExceptionSectionEntrySize32

size_t llvm::XCOFF::ExceptionSectionEntrySize32 = 6 constexpr

Definition at line 42 of file XCOFF.h.

ExceptionSectionEntrySize64

size_t llvm::XCOFF::ExceptionSectionEntrySize64 = 10 constexpr

Definition at line 43 of file XCOFF.h.

FileHeaderSize32

size_t llvm::XCOFF::FileHeaderSize32 = 20 constexpr

Definition at line 32 of file XCOFF.h.

FileHeaderSize64

size_t llvm::XCOFF::FileHeaderSize64 = 24 constexpr

Definition at line 33 of file XCOFF.h.

FileNamePadSize

size_t llvm::XCOFF::FileNamePadSize = 6 constexpr

Definition at line 29 of file XCOFF.h.

NameSize

size_t llvm::XCOFF::NameSize = 8 constexpr

RelocationSerializationSize32

size_t llvm::XCOFF::RelocationSerializationSize32 = 10 constexpr

RelocationSerializationSize64

size_t llvm::XCOFF::RelocationSerializationSize64 = 14 constexpr

RelocOverflow

uint16_t llvm::XCOFF::RelocOverflow = 65535 constexpr

SectionHeaderSize32

size_t llvm::XCOFF::SectionHeaderSize32 = 40 constexpr

Definition at line 37 of file XCOFF.h.

SectionHeaderSize64

size_t llvm::XCOFF::SectionHeaderSize64 = 72 constexpr

Definition at line 38 of file XCOFF.h.

SymbolTableEntrySize

size_t llvm::XCOFF::SymbolTableEntrySize = 18 constexpr

VISIBILITY_MASK

uint16_t llvm::XCOFF::VISIBILITY_MASK = 0x7000 constexpr

XR_BIASED_LENGTH_MASK

uint8_t llvm::XCOFF::XR_BIASED_LENGTH_MASK = 0x3f staticconstexpr

XR_FIXUP_INDICATOR_MASK

uint8_t llvm::XCOFF::XR_FIXUP_INDICATOR_MASK = 0x40 staticconstexpr

XR_SIGN_INDICATOR_MASK

uint8_t llvm::XCOFF::XR_SIGN_INDICATOR_MASK = 0x80 staticconstexpr