28void ScalarBitSetTraits<XCOFF::SectionTypeFlags>::bitset(
30#define ECase(X) IO.bitSetCase(Value, #X, XCOFF::X)
47void ScalarEnumerationTraits<XCOFF::StorageClass>::enumeration(
49#define ECase(X) IO.enumCase(Value, #X, XCOFF::X)
103void ScalarEnumerationTraits<XCOFF::StorageMappingClass>::enumeration(
105#define ECase(X) IO.enumCase(Value, #X, XCOFF::X)
130void ScalarEnumerationTraits<XCOFFYAML::AuxSymbolType>::enumeration(
132#define ECase(X) IO.enumCase(Type, #X, XCOFFYAML::X)
143void ScalarEnumerationTraits<XCOFF::CFileStringType>::enumeration(
145#define ECase(X) IO.enumCase(Type, #X, XCOFF::X)
164 IO.mapOptional(
"MagicNumber", FileHdr.
Magic);
166 IO.mapOptional(
"CreationTime", FileHdr.
TimeStamp);
169 IO.mapOptional(
"AuxiliaryHeaderSize", FileHdr.
AuxHeaderSize);
170 IO.mapOptional(
"Flags", FileHdr.
Flags);
175 IO.mapOptional(
"Magic", AuxHdr.
Magic);
176 IO.mapOptional(
"Version", AuxHdr.
Version);
180 IO.mapOptional(
"TextSectionSize", AuxHdr.
TextSize);
182 IO.mapOptional(
"BssSectionSize", AuxHdr.
BssDataSize);
191 IO.mapOptional(
"ModuleType", AuxHdr.
CpuFlag);
201 IO.mapOptional(
"Flag", AuxHdr.
Flag);
206 IO.mapOptional(
"Address", R.VirtualAddress);
207 IO.mapOptional(
"Symbol", R.SymbolIndex);
208 IO.mapOptional(
"Info", R.Info);
209 IO.mapOptional(
"Type", R.Type);
214 MappingNormalization<NSectionFlags, uint32_t>
NC(IO, Sec.
Flags);
216 IO.mapOptional(
"Address", Sec.
Address);
217 IO.mapOptional(
"Size", Sec.
Size);
223 IO.mapOptional(
"Flags",
NC->Flags);
250 IO.mapOptional(
"LineNum", AuxSym.
LineNum);
252 IO.mapOptional(
"LineNumHi", AuxSym.
LineNumHi);
253 IO.mapOptional(
"LineNumLo", AuxSym.
LineNumLo);
284 IO &IO, std::unique_ptr<XCOFFYAML::AuxSymbolEnt> &AuxSym) {
285 assert(!IO.outputting() &&
"We don't dump aux symbols currently.");
290 IO.mapRequired(
"Type",
AuxType);
294 IO.setError(
"an auxiliary symbol of type AUX_EXCEPT cannot be defined in "
297 auxSymMapping(IO, *cast<XCOFFYAML::ExcpetionAuxEnt>(AuxSym.get()));
301 auxSymMapping(IO, *cast<XCOFFYAML::FunctionAuxEnt>(AuxSym.get()), Is64);
305 auxSymMapping(IO, *cast<XCOFFYAML::BlockAuxEnt>(AuxSym.get()), Is64);
309 auxSymMapping(IO, *cast<XCOFFYAML::FileAuxEnt>(AuxSym.get()));
313 auxSymMapping(IO, *cast<XCOFFYAML::CsectAuxEnt>(AuxSym.get()), Is64);
317 auxSymMapping(IO, *cast<XCOFFYAML::SectAuxEntForDWARF>(AuxSym.get()));
322 "an auxiliary symbol of type AUX_STAT cannot be defined in XCOFF64");
324 auxSymMapping(IO, *cast<XCOFFYAML::SectAuxEntForStat>(AuxSym.get()));
331 IO.mapOptional(
"Value", S.
Value);
334 IO.mapOptional(
"Type", S.
Type);
337 if (!IO.outputting())
342 IO.mapOptional(
"ContentSize", Str.ContentSize);
343 IO.mapOptional(
"Length", Str.Length);
344 IO.mapOptional(
"Strings", Str.Strings);
345 IO.mapOptional(
"RawContent", Str.RawContent);
350 IO.mapTag(
"!XCOFF",
true);
351 IO.mapRequired(
"FileHeader", Obj.
Header);
352 IO.mapOptional(
"AuxiliaryHeader", Obj.
AuxHeader);
353 IO.mapOptional(
"Sections", Obj.
Sections);
354 IO.mapOptional(
"Symbols", Obj.
Symbols);
355 IO.mapOptional(
"StringTable", Obj.
StrTbl);
356 IO.setContext(
nullptr);
COFFYAML::AuxSymbolType AuxType
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
@ C
The default llvm calling convention, compatible with C.
@ 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.
static void auxSymMapping(IO &IO, XCOFFYAML::CsectAuxEnt &AuxSym, bool Is64)
This is an optimization pass for GlobalISel generic memory operations.
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< uint16_t > StabSectNum
std::optional< XCOFF::StorageMappingClass > StorageMappingClass
std::optional< uint32_t > StabInfoIndex
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
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
uint32_t denormalize(IO &)
NSectionFlags(IO &, uint32_t C)
XCOFF::SectionTypeFlags Flags