diff options
Diffstat (limited to 'llvm/lib/ObjectYAML/XCOFFYAML.cpp')
| -rw-r--r-- | llvm/lib/ObjectYAML/XCOFFYAML.cpp | 43 |
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 |
