30#define ECase(X) IO.bitSetCase(Value, #X, XCOFF::X)
49#define ECase(X) IO.enumCase(Value, #X, XCOFF::X)
67#define ECase(X) IO.enumCase(Value, #X, XCOFF::X)
123#define ECase(X) IO.enumCase(Value, #X, XCOFF::X)
150#define ECase(X) IO.enumCase(Value, #X, XCOFF::X)
161#define ECase(X) IO.enumCase(Type, #X, XCOFFYAML::X)
174#define ECase(X) IO.enumCase(Type, #X, XCOFF::X)
315template <
typename AuxEntT>
317 std::unique_ptr<XCOFFYAML::AuxSymbolEnt> &AuxSym) {
319 AuxSym.reset(
new AuxEntT);
323 IO &
IO, std::unique_ptr<XCOFFYAML::AuxSymbolEnt> &AuxSym) {
330 AuxType = AuxSym->Type;
335 IO.
setError(
"an auxiliary symbol of type AUX_EXCEPT cannot be defined in "
365 "an auxiliary symbol of type AUX_STAT cannot be defined in XCOFF64");
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
void mapOptional(const char *Key, T &Val)
virtual bool outputting() const =0
virtual bool mapTag(StringRef Tag, bool Default=false)=0
void mapRequired(const char *Key, T &Val)
virtual void setError(const Twine &)=0
void * getContext() const
void enumFallback(T &Val)
@ C
The default llvm calling convention, compatible with C.
DwarfSectionSubtypeFlags
Values for defining the section subtype of sections of type STYP_DWARF as they would appear in the (s...
@ SSUBTYP_DWARNGE
DWARF aranges section.
@ SSUBTYP_DWFRAME
DWARF frame section.
@ SSUBTYP_DWABREV
DWARF abbrev section.
@ SSUBTYP_DWINFO
DWARF info section.
@ SSUBTYP_DWRNGES
DWARF ranges section.
@ SSUBTYP_DWLOC
DWARF loc section.
@ SSUBTYP_DWMAC
DWARF macinfo section.
@ SSUBTYP_DWPBNMS
DWARF pubnames section.
@ SSUBTYP_DWPBTYP
DWARF pubtypes section.
@ SSUBTYP_DWLINE
DWARF line section.
@ SSUBTYP_DWSTR
DWARF str section.
@ AUX_SECT
Identifies a SECT auxiliary entry.
@ AUX_FILE
Identifies a file auxiliary entry.
@ AUX_EXCEPT
Identifies an exception auxiliary entry.
@ AUX_FCN
Identifies a function auxiliary entry.
@ AUX_SYM
Identifies a symbol auxiliary entry.
@ AUX_CSECT
Identifies a csect auxiliary entry.
@ XFT_FN
Specifies the source-file name.
@ XFT_CD
Specifies compiler-defined information.
@ XFT_CV
Specifies the compiler version number.
@ XFT_CT
Specifies the compiler time stamp.
StorageMappingClass
Storage Mapping Class definitions.
@ XMC_TE
Symbol mapped at the end of TOC.
@ XMC_TB
Traceback Table csect.
@ XMC_TC0
TOC Anchor for TOC Addressability.
@ XMC_SV3264
Supervisor Call for both 32- and 64-bit processes.
@ XMC_GL
Global Linkage (Interfile Interface Code)
@ XMC_DS
Descriptor csect.
@ XMC_SV64
Supervisor Call for 64-bit process.
@ XMC_TL
Initialized thread-local variable.
@ XMC_RO
Read Only Constant.
@ XMC_DB
Debug Dictionary Table.
@ XMC_UA
Unclassified - Treated as Read Write.
@ XMC_SV
Supervisor Call (32-bit process only)
@ XMC_TD
Scalar data item in the TOC.
@ XMC_UC
Un-named Fortran Common.
@ XMC_UL
Uninitialized thread-local variable.
@ XMC_TI
Traceback Index csect.
@ XMC_XO
Extended Operation (Pseudo Machine Instruction)
@ XMC_BS
BSS class (uninitialized static internal)
@ XMC_TC
General TOC item.
@ XTY_CM
Common csect definition. For uninitialized storage.
@ XTY_SD
Csect definition for initialized storage.
@ XTY_LD
Label definition.
@ XTY_ER
External reference.
static void auxSymMapping(IO &IO, XCOFFYAML::CsectAuxEnt &AuxSym, bool Is64)
static void ResetAuxSym(IO &IO, std::unique_ptr< XCOFFYAML::AuxSymbolEnt > &AuxSym)
This is an optimization pass for GlobalISel generic memory operations.
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.
std::optional< uint32_t > LineNum
std::optional< uint16_t > LineNumHi
std::optional< uint16_t > LineNumLo
std::optional< uint16_t > TypeChkSectNum
std::optional< uint32_t > ParameterHashIndex
std::optional< uint32_t > SectionOrLength
std::optional< uint32_t > SectionOrLengthHi
std::optional< uint8_t > SymbolAlignmentAndType
std::optional< uint32_t > SectionOrLengthLo
std::optional< uint8_t > SymbolAlignment
std::optional< uint16_t > StabSectNum
std::optional< XCOFF::StorageMappingClass > StorageMappingClass
std::optional< uint32_t > StabInfoIndex
std::optional< XCOFF::SymbolType > SymbolType
std::optional< int32_t > SymIdxOfNextBeyond
std::optional< uint32_t > SizeOfFunction
std::optional< uint64_t > OffsetToExceptionTbl
std::optional< XCOFF::CFileStringType > FileStringType
std::optional< StringRef > FileNameOrString
std::optional< int32_t > SymIdxOfNextBeyond
std::optional< uint32_t > OffsetToExceptionTbl
std::optional< uint64_t > PtrToLineNum
std::optional< uint32_t > SizeOfFunction
std::vector< Section > Sections
std::optional< AuxiliaryHeader > AuxHeader
std::vector< Symbol > Symbols
std::optional< uint32_t > NumberOfRelocEnt
std::optional< uint32_t > LengthOfSectionPortion
std::optional< uint16_t > NumberOfRelocEnt
std::optional< uint16_t > NumberOfLineNum
std::optional< uint32_t > SectionLength
llvm::yaml::Hex64 FileOffsetToRelocations
llvm::yaml::Hex64 Address
std::optional< XCOFF::DwarfSectionSubtypeFlags > SectionSubtype
llvm::yaml::Hex64 FileOffsetToData
yaml::BinaryRef SectionData
std::vector< Relocation > Relocations
llvm::yaml::Hex16 NumberOfLineNumbers
llvm::yaml::Hex16 NumberOfRelocations
llvm::yaml::Hex64 FileOffsetToLineNumbers
std::vector< std::unique_ptr< AuxSymbolEnt > > AuxEntries
std::optional< uint16_t > SectionIndex
std::optional< uint8_t > NumberOfAuxEntries
XCOFF::StorageClass StorageClass
std::optional< StringRef > SectionName
static void mapping(IO &IO, std::unique_ptr< XCOFFYAML::AuxSymbolEnt > &AuxSym)
This class should be specialized by any type that needs to be converted to/from a YAML mapping.
uint32_t denormalize(IO &)
NSectionFlags(IO &, uint32_t C)
XCOFF::SectionTypeFlags Flags
This class should be specialized by any integer type that is a union of bit values and the YAML repre...
This class should be specialized by any integral type that converts to/from a YAML scalar where there...