aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ObjectYAML/XCOFFYAML.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/ObjectYAML/XCOFFYAML.cpp')
-rw-r--r--llvm/lib/ObjectYAML/XCOFFYAML.cpp43
1 files changed, 42 insertions, 1 deletions
diff --git a/llvm/lib/ObjectYAML/XCOFFYAML.cpp b/llvm/lib/ObjectYAML/XCOFFYAML.cpp
index 73d188e274b1..221cf3b064c0 100644
--- a/llvm/lib/ObjectYAML/XCOFFYAML.cpp
+++ b/llvm/lib/ObjectYAML/XCOFFYAML.cpp
@@ -118,6 +118,37 @@ void MappingTraits<XCOFFYAML::FileHeader>::mapping(
IO.mapOptional("Flags", FileHdr.Flags);
}
+void MappingTraits<XCOFFYAML::AuxiliaryHeader>::mapping(
+ IO &IO, XCOFFYAML::AuxiliaryHeader &AuxHdr) {
+ IO.mapOptional("Magic", AuxHdr.Magic);
+ IO.mapOptional("Version", AuxHdr.Version);
+ IO.mapOptional("TextStartAddr", AuxHdr.TextStartAddr);
+ IO.mapOptional("DataStartAddr", AuxHdr.DataStartAddr);
+ IO.mapOptional("TOCAnchorAddr", AuxHdr.TOCAnchorAddr);
+ IO.mapOptional("TextSectionSize", AuxHdr.TextSize);
+ IO.mapOptional("DataSectionSize", AuxHdr.InitDataSize);
+ IO.mapOptional("BssSectionSize", AuxHdr.BssDataSize);
+ IO.mapOptional("SecNumOfEntryPoint", AuxHdr.SecNumOfEntryPoint);
+ IO.mapOptional("SecNumOfText", AuxHdr.SecNumOfText);
+ IO.mapOptional("SecNumOfData", AuxHdr.SecNumOfData);
+ IO.mapOptional("SecNumOfTOC", AuxHdr.SecNumOfTOC);
+ IO.mapOptional("SecNumOfLoader", AuxHdr.SecNumOfLoader);
+ IO.mapOptional("SecNumOfBSS", AuxHdr.SecNumOfBSS);
+ IO.mapOptional("MaxAlignOfText", AuxHdr.MaxAlignOfText);
+ IO.mapOptional("MaxAlignOfData", AuxHdr.MaxAlignOfData);
+ IO.mapOptional("ModuleType", AuxHdr.CpuFlag);
+ IO.mapOptional("TextPageSize", AuxHdr.TextPageSize);
+ IO.mapOptional("DataPageSize", AuxHdr.DataPageSize);
+ IO.mapOptional("StackPageSize", AuxHdr.StackPageSize);
+ IO.mapOptional("FlagAndTDataAlignment", AuxHdr.FlagAndTDataAlignment);
+ IO.mapOptional("EntryPointAddr", AuxHdr.EntryPointAddr);
+ IO.mapOptional("MaxStackSize", AuxHdr.MaxStackSize);
+ IO.mapOptional("MaxDataSize", AuxHdr.MaxDataSize);
+ IO.mapOptional("SecNumOfTData", AuxHdr.SecNumOfTData);
+ IO.mapOptional("SecNumOfTBSS", AuxHdr.SecNumOfTBSS);
+ IO.mapOptional("Flag", AuxHdr.Flag);
+}
+
void MappingTraits<XCOFFYAML::Relocation>::mapping(IO &IO,
XCOFFYAML::Relocation &R) {
IO.mapOptional("Address", R.VirtualAddress);
@@ -143,19 +174,29 @@ void MappingTraits<XCOFFYAML::Section>::mapping(IO &IO,
}
void MappingTraits<XCOFFYAML::Symbol>::mapping(IO &IO, XCOFFYAML::Symbol &S) {
- IO.mapRequired("Name", S.SymbolName);
+ IO.mapOptional("Name", S.SymbolName);
IO.mapOptional("Value", S.Value);
IO.mapOptional("Section", S.SectionName);
+ IO.mapOptional("SectionIndex", S.SectionIndex);
IO.mapOptional("Type", S.Type);
IO.mapOptional("StorageClass", S.StorageClass);
IO.mapOptional("NumberOfAuxEntries", S.NumberOfAuxEntries);
}
+void MappingTraits<XCOFFYAML::StringTable>::mapping(IO &IO, XCOFFYAML::StringTable &Str) {
+ IO.mapOptional("ContentSize", Str.ContentSize);
+ IO.mapOptional("Length", Str.Length);
+ IO.mapOptional("Strings", Str.Strings);
+ IO.mapOptional("RawContent", Str.RawContent);
+}
+
void MappingTraits<XCOFFYAML::Object>::mapping(IO &IO, XCOFFYAML::Object &Obj) {
IO.mapTag("!XCOFF", true);
IO.mapRequired("FileHeader", Obj.Header);
+ IO.mapOptional("AuxiliaryHeader", Obj.AuxHeader);
IO.mapOptional("Sections", Obj.Sections);
IO.mapOptional("Symbols", Obj.Symbols);
+ IO.mapOptional("StringTable", Obj.StrTbl);
}
} // namespace yaml