Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 1 | //===- EnumTables.cpp - Enum to string conversion tables ------------------===// |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 2 | // |
Chandler Carruth | 2946cd7 | 2019-01-19 08:50:56 +0000 | [diff] [blame] | 3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| 4 | // See https://llvm.org/LICENSE.txt for license information. |
| 5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 6 | // |
| 7 | //===----------------------------------------------------------------------===// |
| 8 | |
| 9 | #include "llvm/DebugInfo/CodeView/EnumTables.h" |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 10 | #include "llvm/Support/ScopedPrinter.h" |
| 11 | #include <type_traits> |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 12 | |
| 13 | using namespace llvm; |
| 14 | using namespace codeview; |
| 15 | |
| 16 | #define CV_ENUM_CLASS_ENT(enum_class, enum) \ |
| 17 | { #enum, std::underlying_type < enum_class > ::type(enum_class::enum) } |
| 18 | |
| 19 | #define CV_ENUM_ENT(ns, enum) \ |
| 20 | { #enum, ns::enum } |
| 21 | |
| 22 | static const EnumEntry<SymbolKind> SymbolTypeNames[] = { |
| 23 | #define CV_SYMBOL(enum, val) {#enum, enum}, |
Zachary Turner | d427383 | 2017-05-30 21:53:05 +0000 | [diff] [blame] | 24 | #include "llvm/DebugInfo/CodeView/CodeViewSymbols.def" |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 25 | #undef CV_SYMBOL |
| 26 | }; |
| 27 | |
Zachary Turner | ac5763e | 2016-08-18 16:49:29 +0000 | [diff] [blame] | 28 | static const EnumEntry<TypeLeafKind> TypeLeafNames[] = { |
| 29 | #define CV_TYPE(name, val) {#name, name}, |
Zachary Turner | d427383 | 2017-05-30 21:53:05 +0000 | [diff] [blame] | 30 | #include "llvm/DebugInfo/CodeView/CodeViewTypes.def" |
Zachary Turner | ac5763e | 2016-08-18 16:49:29 +0000 | [diff] [blame] | 31 | #undef CV_TYPE |
| 32 | }; |
| 33 | |
Tom Tan | eb4d614 | 2019-05-31 23:43:31 +0000 | [diff] [blame] | 34 | static const EnumEntry<uint16_t> RegisterNames_X86[] = { |
| 35 | #define CV_REGISTERS_X86 |
Hans Wennborg | 6605310 | 2017-10-03 18:27:22 +0000 | [diff] [blame] | 36 | #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name), |
| 37 | #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def" |
| 38 | #undef CV_REGISTER |
Tom Tan | eb4d614 | 2019-05-31 23:43:31 +0000 | [diff] [blame] | 39 | #undef CV_REGISTERS_X86 |
| 40 | }; |
| 41 | |
| 42 | static const EnumEntry<uint16_t> RegisterNames_ARM64[] = { |
| 43 | #define CV_REGISTERS_ARM64 |
| 44 | #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name), |
| 45 | #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def" |
| 46 | #undef CV_REGISTER |
| 47 | #undef CV_REGISTERS_ARM64 |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 48 | }; |
| 49 | |
Reid Kleckner | 18d90e1 | 2017-06-19 16:54:51 +0000 | [diff] [blame] | 50 | static const EnumEntry<uint32_t> PublicSymFlagNames[] = { |
| 51 | CV_ENUM_CLASS_ENT(PublicSymFlags, Code), |
| 52 | CV_ENUM_CLASS_ENT(PublicSymFlags, Function), |
| 53 | CV_ENUM_CLASS_ENT(PublicSymFlags, Managed), |
| 54 | CV_ENUM_CLASS_ENT(PublicSymFlags, MSIL), |
| 55 | }; |
| 56 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 57 | static const EnumEntry<uint8_t> ProcSymFlagNames[] = { |
| 58 | CV_ENUM_CLASS_ENT(ProcSymFlags, HasFP), |
| 59 | CV_ENUM_CLASS_ENT(ProcSymFlags, HasIRET), |
| 60 | CV_ENUM_CLASS_ENT(ProcSymFlags, HasFRET), |
| 61 | CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoReturn), |
| 62 | CV_ENUM_CLASS_ENT(ProcSymFlags, IsUnreachable), |
| 63 | CV_ENUM_CLASS_ENT(ProcSymFlags, HasCustomCallingConv), |
| 64 | CV_ENUM_CLASS_ENT(ProcSymFlags, IsNoInline), |
| 65 | CV_ENUM_CLASS_ENT(ProcSymFlags, HasOptimizedDebugInfo), |
| 66 | }; |
| 67 | |
| 68 | static const EnumEntry<uint16_t> LocalFlags[] = { |
| 69 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsParameter), |
| 70 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsAddressTaken), |
| 71 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsCompilerGenerated), |
| 72 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregate), |
| 73 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsAggregated), |
| 74 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsAliased), |
| 75 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsAlias), |
| 76 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsReturnValue), |
| 77 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsOptimizedOut), |
| 78 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredGlobal), |
| 79 | CV_ENUM_CLASS_ENT(LocalSymFlags, IsEnregisteredStatic), |
| 80 | }; |
| 81 | |
Reid Kleckner | 33848fa | 2016-06-24 17:23:49 +0000 | [diff] [blame] | 82 | static const EnumEntry<uint8_t> FrameCookieKinds[] = { |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 83 | CV_ENUM_CLASS_ENT(FrameCookieKind, Copy), |
| 84 | CV_ENUM_CLASS_ENT(FrameCookieKind, XorStackPointer), |
| 85 | CV_ENUM_CLASS_ENT(FrameCookieKind, XorFramePointer), |
| 86 | CV_ENUM_CLASS_ENT(FrameCookieKind, XorR13), |
| 87 | }; |
| 88 | |
| 89 | static const EnumEntry<codeview::SourceLanguage> SourceLanguages[] = { |
| 90 | CV_ENUM_ENT(SourceLanguage, C), CV_ENUM_ENT(SourceLanguage, Cpp), |
| 91 | CV_ENUM_ENT(SourceLanguage, Fortran), CV_ENUM_ENT(SourceLanguage, Masm), |
| 92 | CV_ENUM_ENT(SourceLanguage, Pascal), CV_ENUM_ENT(SourceLanguage, Basic), |
| 93 | CV_ENUM_ENT(SourceLanguage, Cobol), CV_ENUM_ENT(SourceLanguage, Link), |
| 94 | CV_ENUM_ENT(SourceLanguage, Cvtres), CV_ENUM_ENT(SourceLanguage, Cvtpgd), |
| 95 | CV_ENUM_ENT(SourceLanguage, CSharp), CV_ENUM_ENT(SourceLanguage, VB), |
| 96 | CV_ENUM_ENT(SourceLanguage, ILAsm), CV_ENUM_ENT(SourceLanguage, Java), |
| 97 | CV_ENUM_ENT(SourceLanguage, JScript), CV_ENUM_ENT(SourceLanguage, MSIL), |
Reid Kleckner | 898ddf6 | 2017-07-24 16:16:42 +0000 | [diff] [blame] | 98 | CV_ENUM_ENT(SourceLanguage, HLSL), CV_ENUM_ENT(SourceLanguage, D), |
Nathan Lanza | cc51dc6 | 2019-03-11 23:27:59 +0000 | [diff] [blame] | 99 | CV_ENUM_ENT(SourceLanguage, Swift), |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 100 | }; |
| 101 | |
| 102 | static const EnumEntry<uint32_t> CompileSym2FlagNames[] = { |
| 103 | CV_ENUM_CLASS_ENT(CompileSym2Flags, EC), |
| 104 | CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDbgInfo), |
| 105 | CV_ENUM_CLASS_ENT(CompileSym2Flags, LTCG), |
| 106 | CV_ENUM_CLASS_ENT(CompileSym2Flags, NoDataAlign), |
| 107 | CV_ENUM_CLASS_ENT(CompileSym2Flags, ManagedPresent), |
| 108 | CV_ENUM_CLASS_ENT(CompileSym2Flags, SecurityChecks), |
| 109 | CV_ENUM_CLASS_ENT(CompileSym2Flags, HotPatch), |
| 110 | CV_ENUM_CLASS_ENT(CompileSym2Flags, CVTCIL), |
| 111 | CV_ENUM_CLASS_ENT(CompileSym2Flags, MSILModule), |
| 112 | }; |
| 113 | |
| 114 | static const EnumEntry<uint32_t> CompileSym3FlagNames[] = { |
| 115 | CV_ENUM_CLASS_ENT(CompileSym3Flags, EC), |
| 116 | CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDbgInfo), |
| 117 | CV_ENUM_CLASS_ENT(CompileSym3Flags, LTCG), |
| 118 | CV_ENUM_CLASS_ENT(CompileSym3Flags, NoDataAlign), |
| 119 | CV_ENUM_CLASS_ENT(CompileSym3Flags, ManagedPresent), |
| 120 | CV_ENUM_CLASS_ENT(CompileSym3Flags, SecurityChecks), |
| 121 | CV_ENUM_CLASS_ENT(CompileSym3Flags, HotPatch), |
| 122 | CV_ENUM_CLASS_ENT(CompileSym3Flags, CVTCIL), |
| 123 | CV_ENUM_CLASS_ENT(CompileSym3Flags, MSILModule), |
| 124 | CV_ENUM_CLASS_ENT(CompileSym3Flags, Sdl), |
| 125 | CV_ENUM_CLASS_ENT(CompileSym3Flags, PGO), |
| 126 | CV_ENUM_CLASS_ENT(CompileSym3Flags, Exp), |
| 127 | }; |
| 128 | |
Zachary Turner | d0563f29 | 2016-06-03 04:01:48 +0000 | [diff] [blame] | 129 | static const EnumEntry<uint32_t> FileChecksumNames[] = { |
| 130 | CV_ENUM_CLASS_ENT(FileChecksumKind, None), |
| 131 | CV_ENUM_CLASS_ENT(FileChecksumKind, MD5), |
| 132 | CV_ENUM_CLASS_ENT(FileChecksumKind, SHA1), |
| 133 | CV_ENUM_CLASS_ENT(FileChecksumKind, SHA256), |
| 134 | }; |
| 135 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 136 | static const EnumEntry<unsigned> CPUTypeNames[] = { |
| 137 | CV_ENUM_CLASS_ENT(CPUType, Intel8080), |
| 138 | CV_ENUM_CLASS_ENT(CPUType, Intel8086), |
| 139 | CV_ENUM_CLASS_ENT(CPUType, Intel80286), |
| 140 | CV_ENUM_CLASS_ENT(CPUType, Intel80386), |
| 141 | CV_ENUM_CLASS_ENT(CPUType, Intel80486), |
| 142 | CV_ENUM_CLASS_ENT(CPUType, Pentium), |
| 143 | CV_ENUM_CLASS_ENT(CPUType, PentiumPro), |
| 144 | CV_ENUM_CLASS_ENT(CPUType, Pentium3), |
| 145 | CV_ENUM_CLASS_ENT(CPUType, MIPS), |
| 146 | CV_ENUM_CLASS_ENT(CPUType, MIPS16), |
| 147 | CV_ENUM_CLASS_ENT(CPUType, MIPS32), |
| 148 | CV_ENUM_CLASS_ENT(CPUType, MIPS64), |
| 149 | CV_ENUM_CLASS_ENT(CPUType, MIPSI), |
| 150 | CV_ENUM_CLASS_ENT(CPUType, MIPSII), |
| 151 | CV_ENUM_CLASS_ENT(CPUType, MIPSIII), |
| 152 | CV_ENUM_CLASS_ENT(CPUType, MIPSIV), |
| 153 | CV_ENUM_CLASS_ENT(CPUType, MIPSV), |
| 154 | CV_ENUM_CLASS_ENT(CPUType, M68000), |
| 155 | CV_ENUM_CLASS_ENT(CPUType, M68010), |
| 156 | CV_ENUM_CLASS_ENT(CPUType, M68020), |
| 157 | CV_ENUM_CLASS_ENT(CPUType, M68030), |
| 158 | CV_ENUM_CLASS_ENT(CPUType, M68040), |
| 159 | CV_ENUM_CLASS_ENT(CPUType, Alpha), |
| 160 | CV_ENUM_CLASS_ENT(CPUType, Alpha21164), |
| 161 | CV_ENUM_CLASS_ENT(CPUType, Alpha21164A), |
| 162 | CV_ENUM_CLASS_ENT(CPUType, Alpha21264), |
| 163 | CV_ENUM_CLASS_ENT(CPUType, Alpha21364), |
| 164 | CV_ENUM_CLASS_ENT(CPUType, PPC601), |
| 165 | CV_ENUM_CLASS_ENT(CPUType, PPC603), |
| 166 | CV_ENUM_CLASS_ENT(CPUType, PPC604), |
| 167 | CV_ENUM_CLASS_ENT(CPUType, PPC620), |
| 168 | CV_ENUM_CLASS_ENT(CPUType, PPCFP), |
| 169 | CV_ENUM_CLASS_ENT(CPUType, PPCBE), |
| 170 | CV_ENUM_CLASS_ENT(CPUType, SH3), |
| 171 | CV_ENUM_CLASS_ENT(CPUType, SH3E), |
| 172 | CV_ENUM_CLASS_ENT(CPUType, SH3DSP), |
| 173 | CV_ENUM_CLASS_ENT(CPUType, SH4), |
| 174 | CV_ENUM_CLASS_ENT(CPUType, SHMedia), |
| 175 | CV_ENUM_CLASS_ENT(CPUType, ARM3), |
| 176 | CV_ENUM_CLASS_ENT(CPUType, ARM4), |
| 177 | CV_ENUM_CLASS_ENT(CPUType, ARM4T), |
| 178 | CV_ENUM_CLASS_ENT(CPUType, ARM5), |
| 179 | CV_ENUM_CLASS_ENT(CPUType, ARM5T), |
| 180 | CV_ENUM_CLASS_ENT(CPUType, ARM6), |
| 181 | CV_ENUM_CLASS_ENT(CPUType, ARM_XMAC), |
| 182 | CV_ENUM_CLASS_ENT(CPUType, ARM_WMMX), |
| 183 | CV_ENUM_CLASS_ENT(CPUType, ARM7), |
Tom Tan | eb4d614 | 2019-05-31 23:43:31 +0000 | [diff] [blame] | 184 | CV_ENUM_CLASS_ENT(CPUType, ARM64), |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 185 | CV_ENUM_CLASS_ENT(CPUType, Omni), |
| 186 | CV_ENUM_CLASS_ENT(CPUType, Ia64), |
| 187 | CV_ENUM_CLASS_ENT(CPUType, Ia64_2), |
| 188 | CV_ENUM_CLASS_ENT(CPUType, CEE), |
| 189 | CV_ENUM_CLASS_ENT(CPUType, AM33), |
| 190 | CV_ENUM_CLASS_ENT(CPUType, M32R), |
| 191 | CV_ENUM_CLASS_ENT(CPUType, TriCore), |
| 192 | CV_ENUM_CLASS_ENT(CPUType, X64), |
| 193 | CV_ENUM_CLASS_ENT(CPUType, EBC), |
| 194 | CV_ENUM_CLASS_ENT(CPUType, Thumb), |
| 195 | CV_ENUM_CLASS_ENT(CPUType, ARMNT), |
| 196 | CV_ENUM_CLASS_ENT(CPUType, D3D11_Shader), |
| 197 | }; |
| 198 | |
| 199 | static const EnumEntry<uint32_t> FrameProcSymFlagNames[] = { |
| 200 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasAlloca), |
| 201 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasSetJmp), |
| 202 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasLongJmp), |
| 203 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasInlineAssembly), |
| 204 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasExceptionHandling), |
| 205 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, MarkedInline), |
| 206 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, HasStructuredExceptionHandling), |
| 207 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, Naked), |
| 208 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, SecurityChecks), |
| 209 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, AsynchronousExceptionHandling), |
| 210 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, NoStackOrderingForSecurityChecks), |
| 211 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, Inlined), |
| 212 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, StrictSecurityChecks), |
| 213 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, SafeBuffers), |
Reid Kleckner | a6f6426 | 2018-09-11 22:00:50 +0000 | [diff] [blame] | 214 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedLocalBasePointerMask), |
| 215 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, EncodedParamBasePointerMask), |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 216 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, ProfileGuidedOptimization), |
| 217 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, ValidProfileCounts), |
| 218 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, OptimizedForSpeed), |
| 219 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfg), |
| 220 | CV_ENUM_CLASS_ENT(FrameProcedureOptions, GuardCfw), |
| 221 | }; |
| 222 | |
Zachary Turner | 7eb6d35 | 2016-06-02 20:11:22 +0000 | [diff] [blame] | 223 | static const EnumEntry<uint32_t> ModuleSubstreamKindNames[] = { |
Zachary Turner | 8c099fe | 2017-05-30 16:36:15 +0000 | [diff] [blame] | 224 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, None), |
| 225 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, Symbols), |
| 226 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, Lines), |
| 227 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, StringTable), |
| 228 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, FileChecksums), |
| 229 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, FrameData), |
| 230 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, InlineeLines), |
| 231 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeImports), |
| 232 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, CrossScopeExports), |
| 233 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, ILLines), |
| 234 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, FuncMDTokenMap), |
| 235 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, TypeMDTokenMap), |
| 236 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, MergedAssemblyInput), |
| 237 | CV_ENUM_CLASS_ENT(DebugSubsectionKind, CoffSymbolRVA), |
Zachary Turner | 7eb6d35 | 2016-06-02 20:11:22 +0000 | [diff] [blame] | 238 | }; |
| 239 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 240 | static const EnumEntry<uint16_t> ExportSymFlagNames[] = { |
| 241 | CV_ENUM_CLASS_ENT(ExportFlags, IsConstant), |
| 242 | CV_ENUM_CLASS_ENT(ExportFlags, IsData), |
| 243 | CV_ENUM_CLASS_ENT(ExportFlags, IsPrivate), |
| 244 | CV_ENUM_CLASS_ENT(ExportFlags, HasNoName), |
| 245 | CV_ENUM_CLASS_ENT(ExportFlags, HasExplicitOrdinal), |
| 246 | CV_ENUM_CLASS_ENT(ExportFlags, IsForwarder), |
| 247 | }; |
| 248 | |
| 249 | static const EnumEntry<uint8_t> ThunkOrdinalNames[] = { |
| 250 | CV_ENUM_CLASS_ENT(ThunkOrdinal, Standard), |
| 251 | CV_ENUM_CLASS_ENT(ThunkOrdinal, ThisAdjustor), |
| 252 | CV_ENUM_CLASS_ENT(ThunkOrdinal, Vcall), |
| 253 | CV_ENUM_CLASS_ENT(ThunkOrdinal, Pcode), |
| 254 | CV_ENUM_CLASS_ENT(ThunkOrdinal, UnknownLoad), |
| 255 | CV_ENUM_CLASS_ENT(ThunkOrdinal, TrampIncremental), |
| 256 | CV_ENUM_CLASS_ENT(ThunkOrdinal, BranchIsland), |
| 257 | }; |
| 258 | |
| 259 | static const EnumEntry<uint16_t> TrampolineNames[] = { |
| 260 | CV_ENUM_CLASS_ENT(TrampolineType, TrampIncremental), |
| 261 | CV_ENUM_CLASS_ENT(TrampolineType, BranchIsland), |
| 262 | }; |
| 263 | |
| 264 | static const EnumEntry<COFF::SectionCharacteristics> |
| 265 | ImageSectionCharacteristicNames[] = { |
| 266 | CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NOLOAD), |
| 267 | CV_ENUM_ENT(COFF, IMAGE_SCN_TYPE_NO_PAD), |
| 268 | CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_CODE), |
| 269 | CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_INITIALIZED_DATA), |
| 270 | CV_ENUM_ENT(COFF, IMAGE_SCN_CNT_UNINITIALIZED_DATA), |
| 271 | CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_OTHER), |
| 272 | CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_INFO), |
| 273 | CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_REMOVE), |
| 274 | CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_COMDAT), |
| 275 | CV_ENUM_ENT(COFF, IMAGE_SCN_GPREL), |
| 276 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PURGEABLE), |
| 277 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_16BIT), |
| 278 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_LOCKED), |
| 279 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_PRELOAD), |
| 280 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1BYTES), |
| 281 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2BYTES), |
| 282 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4BYTES), |
| 283 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8BYTES), |
| 284 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_16BYTES), |
| 285 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_32BYTES), |
| 286 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_64BYTES), |
| 287 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_128BYTES), |
| 288 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_256BYTES), |
| 289 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_512BYTES), |
| 290 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_1024BYTES), |
| 291 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_2048BYTES), |
| 292 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_4096BYTES), |
| 293 | CV_ENUM_ENT(COFF, IMAGE_SCN_ALIGN_8192BYTES), |
| 294 | CV_ENUM_ENT(COFF, IMAGE_SCN_LNK_NRELOC_OVFL), |
| 295 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_DISCARDABLE), |
| 296 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_CACHED), |
| 297 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_NOT_PAGED), |
| 298 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_SHARED), |
| 299 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_EXECUTE), |
| 300 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_READ), |
| 301 | CV_ENUM_ENT(COFF, IMAGE_SCN_MEM_WRITE)}; |
| 302 | |
| 303 | namespace llvm { |
| 304 | namespace codeview { |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 305 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 306 | ArrayRef<EnumEntry<SymbolKind>> getSymbolTypeNames() { |
| 307 | return makeArrayRef(SymbolTypeNames); |
| 308 | } |
| 309 | |
Zachary Turner | ac5763e | 2016-08-18 16:49:29 +0000 | [diff] [blame] | 310 | ArrayRef<EnumEntry<TypeLeafKind>> getTypeLeafNames() { |
| 311 | return makeArrayRef(TypeLeafNames); |
| 312 | } |
| 313 | |
Tom Tan | eb4d614 | 2019-05-31 23:43:31 +0000 | [diff] [blame] | 314 | ArrayRef<EnumEntry<uint16_t>> getRegisterNames(CPUType Cpu) { |
| 315 | if (Cpu == CPUType::ARM64) { |
| 316 | return makeArrayRef(RegisterNames_ARM64); |
| 317 | } |
| 318 | return makeArrayRef(RegisterNames_X86); |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 319 | } |
| 320 | |
Reid Kleckner | 18d90e1 | 2017-06-19 16:54:51 +0000 | [diff] [blame] | 321 | ArrayRef<EnumEntry<uint32_t>> getPublicSymFlagNames() { |
| 322 | return makeArrayRef(PublicSymFlagNames); |
| 323 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 324 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 325 | ArrayRef<EnumEntry<uint8_t>> getProcSymFlagNames() { |
| 326 | return makeArrayRef(ProcSymFlagNames); |
| 327 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 328 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 329 | ArrayRef<EnumEntry<uint16_t>> getLocalFlagNames() { |
| 330 | return makeArrayRef(LocalFlags); |
| 331 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 332 | |
Reid Kleckner | 33848fa | 2016-06-24 17:23:49 +0000 | [diff] [blame] | 333 | ArrayRef<EnumEntry<uint8_t>> getFrameCookieKindNames() { |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 334 | return makeArrayRef(FrameCookieKinds); |
| 335 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 336 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 337 | ArrayRef<EnumEntry<SourceLanguage>> getSourceLanguageNames() { |
| 338 | return makeArrayRef(SourceLanguages); |
| 339 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 340 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 341 | ArrayRef<EnumEntry<uint32_t>> getCompileSym2FlagNames() { |
| 342 | return makeArrayRef(CompileSym2FlagNames); |
| 343 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 344 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 345 | ArrayRef<EnumEntry<uint32_t>> getCompileSym3FlagNames() { |
| 346 | return makeArrayRef(CompileSym3FlagNames); |
| 347 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 348 | |
Zachary Turner | d0563f29 | 2016-06-03 04:01:48 +0000 | [diff] [blame] | 349 | ArrayRef<EnumEntry<uint32_t>> getFileChecksumNames() { |
| 350 | return makeArrayRef(FileChecksumNames); |
| 351 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 352 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 353 | ArrayRef<EnumEntry<unsigned>> getCPUTypeNames() { |
| 354 | return makeArrayRef(CPUTypeNames); |
| 355 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 356 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 357 | ArrayRef<EnumEntry<uint32_t>> getFrameProcSymFlagNames() { |
| 358 | return makeArrayRef(FrameProcSymFlagNames); |
| 359 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 360 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 361 | ArrayRef<EnumEntry<uint16_t>> getExportSymFlagNames() { |
| 362 | return makeArrayRef(ExportSymFlagNames); |
| 363 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 364 | |
Zachary Turner | 7eb6d35 | 2016-06-02 20:11:22 +0000 | [diff] [blame] | 365 | ArrayRef<EnumEntry<uint32_t>> getModuleSubstreamKindNames() { |
| 366 | return makeArrayRef(ModuleSubstreamKindNames); |
| 367 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 368 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 369 | ArrayRef<EnumEntry<uint8_t>> getThunkOrdinalNames() { |
| 370 | return makeArrayRef(ThunkOrdinalNames); |
| 371 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 372 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 373 | ArrayRef<EnumEntry<uint16_t>> getTrampolineNames() { |
| 374 | return makeArrayRef(TrampolineNames); |
| 375 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 376 | |
Zachary Turner | 93839cb | 2016-06-02 05:07:49 +0000 | [diff] [blame] | 377 | ArrayRef<EnumEntry<COFF::SectionCharacteristics>> |
| 378 | getImageSectionCharacteristicNames() { |
| 379 | return makeArrayRef(ImageSectionCharacteristicNames); |
| 380 | } |
Eugene Zelenko | 8456b16 | 2017-06-29 00:05:44 +0000 | [diff] [blame] | 381 | |
| 382 | } // end namespace codeview |
| 383 | } // end namespace llvm |