LLVM  14.0.0git
Classes | Enumerations | Functions | Variables
llvm::XCOFF Namespace Reference

Classes

struct  CsectProperties
 
struct  TracebackTable
 

Enumerations

enum  ReservedSectionNum : int16_t { N_DEBUG = -2, N_ABS = -1, N_UNDEF = 0 }
 
enum  MagicNumber : uint16_t { XCOFF32 = 0x01DF, XCOFF64 = 0x01F7 }
 
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. Valid for 32-bit XCOFF only when the vstamp in the auxiliary header is greater than 1. 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_CPLUSPLUS = 9 }
 
enum  CFileCpuId : uint8_t { TCPU_PPC64 = 2, TCPU_COM = 3, TCPU_970 = 19 }
 
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

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

Variables

constexpr size_t FileNamePadSize = 6
 
constexpr size_t NameSize = 8
 
constexpr size_t FileHeaderSize32 = 20
 
constexpr size_t FileHeaderSize64 = 24
 
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 uint16_t RelocOverflow = 65535
 
constexpr uint8_t AllocRegNo = 31
 

Enumeration Type Documentation

◆ CFileCpuId

enum llvm::XCOFF::CFileCpuId : uint8_t
Enumerator
TCPU_PPC64 

PowerPC common architecture 64-bit mode.

TCPU_COM 

POWER and PowerPC architecture common.

TCPU_970 

PPC970 - PowerPC 64-bit architecture.

Definition at line 276 of file XCOFF.h.

◆ CFileLangId

enum llvm::XCOFF::CFileLangId : uint8_t
Enumerator
TB_C 

C language.

TB_CPLUSPLUS 

C++ language.

Definition at line 271 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 264 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 97 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 400 of file XCOFF.h.

◆ MagicNumber

Enumerator
XCOFF32 
XCOFF64 

Definition at line 42 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 203 of file XCOFF.h.

◆ ReservedSectionNum

Enumerator
N_DEBUG 
N_ABS 
N_UNDEF 

Definition at line 40 of file XCOFF.h.

◆ SectionTypeFlags

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 77 of file XCOFF.h.

◆ StorageClass

enum llvm::XCOFF::StorageClass : uint8_t
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 113 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 46 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 282 of file XCOFF.h.

◆ SymbolType

enum llvm::XCOFF::SymbolType : uint8_t
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 183 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 194 of file XCOFF.h.

Function Documentation

◆ getExtendedTBTableFlagString()

SmallString< 32 > llvm::XCOFF::getExtendedTBTableFlagString ( uint8_t  Flag)

Definition at line 162 of file XCOFF.cpp.

References TB_EH_INFO, TB_LONGTBTABLE2, TB_OS1, TB_OS2, TB_RESERVED, and TB_SSP_CANARY.

◆ getMappingClassString()

StringRef llvm::XCOFF::getMappingClassString ( XCOFF::StorageMappingClass  SMC)

Definition at line 20 of file XCOFF.cpp.

References llvm::SIInstrFlags::DS, SMC_CASE, and llvm::X86II::TB.

◆ getNameForTracebackTableLanguageId()

StringRef llvm::XCOFF::getNameForTracebackTableLanguageId ( TracebackTable::LanguageID  LangId)

◆ getRelocationTypeString()

StringRef llvm::XCOFF::getRelocationTypeString ( XCOFF::RelocationType  Type)

◆ parseParmsType()

Expected< SmallString< 32 > > llvm::XCOFF::parseParmsType ( uint32_t  Value,
unsigned  FixedParmsNum,
unsigned  FloatingParmsNum 
)

◆ parseParmsTypeWithVecInfo()

Expected< SmallString< 32 > > llvm::XCOFF::parseParmsTypeWithVecInfo ( uint32_t  Value,
unsigned  FixedParmsNum,
unsigned  FloatingParmsNum,
unsigned  VectorParmsNum 
)

◆ parseVectorParmsType()

Expected< SmallString< 32 > > llvm::XCOFF::parseVectorParmsType ( uint32_t  Value,
unsigned  ParmsNum 
)

Variable Documentation

◆ AllocRegNo

constexpr uint8_t llvm::XCOFF::AllocRegNo = 31
constexpr

Definition at line 38 of file XCOFF.h.

◆ FileHeaderSize32

constexpr size_t llvm::XCOFF::FileHeaderSize32 = 20
constexpr

Definition at line 30 of file XCOFF.h.

◆ FileHeaderSize64

constexpr size_t llvm::XCOFF::FileHeaderSize64 = 24
constexpr

Definition at line 31 of file XCOFF.h.

◆ FileNamePadSize

constexpr size_t llvm::XCOFF::FileNamePadSize = 6
constexpr

Definition at line 28 of file XCOFF.h.

◆ NameSize

constexpr size_t llvm::XCOFF::NameSize = 8
constexpr

Definition at line 29 of file XCOFF.h.

Referenced by llvm::object::generateXCOFFFixedNameStringRef().

◆ RelocationSerializationSize32

constexpr size_t llvm::XCOFF::RelocationSerializationSize32 = 10
constexpr

Definition at line 35 of file XCOFF.h.

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

◆ RelocationSerializationSize64

constexpr size_t llvm::XCOFF::RelocationSerializationSize64 = 14
constexpr

Definition at line 36 of file XCOFF.h.

◆ RelocOverflow

constexpr uint16_t llvm::XCOFF::RelocOverflow = 65535
constexpr

◆ SectionHeaderSize32

constexpr size_t llvm::XCOFF::SectionHeaderSize32 = 40
constexpr

Definition at line 32 of file XCOFF.h.

◆ SectionHeaderSize64

constexpr size_t llvm::XCOFF::SectionHeaderSize64 = 72
constexpr

Definition at line 33 of file XCOFF.h.

◆ SymbolTableEntrySize

constexpr size_t llvm::XCOFF::SymbolTableEntrySize = 18
constexpr