Home | History | Annotate | Download | only in CodeView
      1 //===-- CodeViewSymbols.def - All CodeView leaf types -----------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // See LEAF_ENUM_e in cvinfo.h. This should match the constants there.
     11 //
     12 //===----------------------------------------------------------------------===//
     13 
     14 #ifndef CV_SYMBOL
     15 #define CV_SYMBOL(ename, value)
     16 #endif
     17 
     18 #ifndef SYMBOL_RECORD
     19 #define SYMBOL_RECORD(lf_ename, value, name) CV_SYMBOL(lf_ename, value)
     20 #endif
     21 
     22 #ifndef SYMBOL_RECORD_ALIAS
     23 #define SYMBOL_RECORD_ALIAS(lf_ename, value, name, alias_name)                   \
     24   SYMBOL_RECORD(lf_ename, value, name)
     25 #endif
     26 
     27 // 16 bit symbol types. Not very useful, provided only for reference.
     28 CV_SYMBOL(S_COMPILE       , 0x0001)
     29 CV_SYMBOL(S_REGISTER_16t  , 0x0002)
     30 CV_SYMBOL(S_CONSTANT_16t  , 0x0003)
     31 CV_SYMBOL(S_UDT_16t       , 0x0004)
     32 CV_SYMBOL(S_SSEARCH       , 0x0005)
     33 CV_SYMBOL(S_SKIP          , 0x0007)
     34 CV_SYMBOL(S_CVRESERVE     , 0x0008)
     35 CV_SYMBOL(S_OBJNAME_ST    , 0x0009)
     36 CV_SYMBOL(S_ENDARG        , 0x000a)
     37 CV_SYMBOL(S_COBOLUDT_16t  , 0x000b)
     38 CV_SYMBOL(S_MANYREG_16t   , 0x000c)
     39 CV_SYMBOL(S_RETURN        , 0x000d)
     40 CV_SYMBOL(S_ENTRYTHIS     , 0x000e)
     41 CV_SYMBOL(S_BPREL16       , 0x0100)
     42 CV_SYMBOL(S_LDATA16       , 0x0101)
     43 CV_SYMBOL(S_GDATA16       , 0x0102)
     44 CV_SYMBOL(S_PUB16         , 0x0103)
     45 CV_SYMBOL(S_LPROC16       , 0x0104)
     46 CV_SYMBOL(S_GPROC16       , 0x0105)
     47 CV_SYMBOL(S_THUNK16       , 0x0106)
     48 CV_SYMBOL(S_BLOCK16       , 0x0107)
     49 CV_SYMBOL(S_WITH16        , 0x0108)
     50 CV_SYMBOL(S_LABEL16       , 0x0109)
     51 CV_SYMBOL(S_CEXMODEL16    , 0x010a)
     52 CV_SYMBOL(S_VFTABLE16     , 0x010b)
     53 CV_SYMBOL(S_REGREL16      , 0x010c)
     54 CV_SYMBOL(S_BPREL32_16t   , 0x0200)
     55 CV_SYMBOL(S_LDATA32_16t   , 0x0201)
     56 CV_SYMBOL(S_GDATA32_16t   , 0x0202)
     57 CV_SYMBOL(S_PUB32_16t     , 0x0203)
     58 CV_SYMBOL(S_LPROC32_16t   , 0x0204)
     59 CV_SYMBOL(S_GPROC32_16t   , 0x0205)
     60 CV_SYMBOL(S_THUNK32_ST    , 0x0206)
     61 CV_SYMBOL(S_BLOCK32_ST    , 0x0207)
     62 CV_SYMBOL(S_WITH32_ST     , 0x0208)
     63 CV_SYMBOL(S_LABEL32_ST    , 0x0209)
     64 CV_SYMBOL(S_CEXMODEL32    , 0x020a)
     65 CV_SYMBOL(S_VFTABLE32_16t , 0x020b)
     66 CV_SYMBOL(S_REGREL32_16t  , 0x020c)
     67 CV_SYMBOL(S_LTHREAD32_16t , 0x020d)
     68 CV_SYMBOL(S_GTHREAD32_16t , 0x020e)
     69 CV_SYMBOL(S_SLINK32       , 0x020f)
     70 CV_SYMBOL(S_LPROCMIPS_16t , 0x0300)
     71 CV_SYMBOL(S_GPROCMIPS_16t , 0x0301)
     72 CV_SYMBOL(S_PROCREF_ST    , 0x0400)
     73 CV_SYMBOL(S_DATAREF_ST    , 0x0401)
     74 CV_SYMBOL(S_ALIGN         , 0x0402)
     75 CV_SYMBOL(S_LPROCREF_ST   , 0x0403)
     76 CV_SYMBOL(S_OEM           , 0x0404)
     77 
     78 // All post 16 bit symbol types have the 0x1000 bit set.
     79 CV_SYMBOL(S_TI16_MAX      , 0x1000)
     80 
     81 // Mostly unused "start" symbol types.
     82 CV_SYMBOL(S_REGISTER_ST   , 0x1001)
     83 CV_SYMBOL(S_CONSTANT_ST   , 0x1002)
     84 CV_SYMBOL(S_UDT_ST        , 0x1003)
     85 CV_SYMBOL(S_COBOLUDT_ST   , 0x1004)
     86 CV_SYMBOL(S_MANYREG_ST    , 0x1005)
     87 CV_SYMBOL(S_BPREL32_ST    , 0x1006)
     88 CV_SYMBOL(S_LDATA32_ST    , 0x1007)
     89 CV_SYMBOL(S_GDATA32_ST    , 0x1008)
     90 CV_SYMBOL(S_PUB32_ST      , 0x1009)
     91 CV_SYMBOL(S_LPROC32_ST    , 0x100a)
     92 CV_SYMBOL(S_GPROC32_ST    , 0x100b)
     93 CV_SYMBOL(S_VFTABLE32     , 0x100c)
     94 CV_SYMBOL(S_REGREL32_ST   , 0x100d)
     95 CV_SYMBOL(S_LTHREAD32_ST  , 0x100e)
     96 CV_SYMBOL(S_GTHREAD32_ST  , 0x100f)
     97 CV_SYMBOL(S_LPROCMIPS_ST  , 0x1010)
     98 CV_SYMBOL(S_GPROCMIPS_ST  , 0x1011)
     99 
    100 CV_SYMBOL(S_COMPILE2_ST   , 0x1013)
    101 CV_SYMBOL(S_MANYREG2_ST   , 0x1014)
    102 CV_SYMBOL(S_LPROCIA64_ST  , 0x1015)
    103 CV_SYMBOL(S_GPROCIA64_ST  , 0x1016)
    104 CV_SYMBOL(S_LOCALSLOT_ST  , 0x1017)
    105 CV_SYMBOL(S_PARAMSLOT_ST  , 0x1018)
    106 CV_SYMBOL(S_ANNOTATION    , 0x1019)
    107 CV_SYMBOL(S_GMANPROC_ST   , 0x101a)
    108 CV_SYMBOL(S_LMANPROC_ST   , 0x101b)
    109 CV_SYMBOL(S_RESERVED1     , 0x101c)
    110 CV_SYMBOL(S_RESERVED2     , 0x101d)
    111 CV_SYMBOL(S_RESERVED3     , 0x101e)
    112 CV_SYMBOL(S_RESERVED4     , 0x101f)
    113 CV_SYMBOL(S_LMANDATA_ST   , 0x1020)
    114 CV_SYMBOL(S_GMANDATA_ST   , 0x1021)
    115 CV_SYMBOL(S_MANFRAMEREL_ST, 0x1022)
    116 CV_SYMBOL(S_MANREGISTER_ST, 0x1023)
    117 CV_SYMBOL(S_MANSLOT_ST    , 0x1024)
    118 CV_SYMBOL(S_MANMANYREG_ST , 0x1025)
    119 CV_SYMBOL(S_MANREGREL_ST  , 0x1026)
    120 CV_SYMBOL(S_MANMANYREG2_ST, 0x1027)
    121 CV_SYMBOL(S_MANTYPREF     , 0x1028)
    122 CV_SYMBOL(S_UNAMESPACE_ST , 0x1029)
    123 
    124 // End of S_*_ST symbols, which do not appear to be generated by modern
    125 // compilers.
    126 CV_SYMBOL(S_ST_MAX        , 0x1100)
    127 
    128 
    129 CV_SYMBOL(S_WITH32        , 0x1104)
    130 CV_SYMBOL(S_MANYREG       , 0x110a)
    131 CV_SYMBOL(S_LPROCMIPS     , 0x1114)
    132 CV_SYMBOL(S_GPROCMIPS     , 0x1115)
    133 CV_SYMBOL(S_MANYREG2      , 0x1117)
    134 CV_SYMBOL(S_LPROCIA64     , 0x1118)
    135 CV_SYMBOL(S_GPROCIA64     , 0x1119)
    136 CV_SYMBOL(S_LOCALSLOT     , 0x111a)
    137 CV_SYMBOL(S_PARAMSLOT     , 0x111b)
    138 
    139 // Managed code symbols.
    140 CV_SYMBOL(S_MANFRAMEREL   , 0x111e)
    141 CV_SYMBOL(S_MANREGISTER   , 0x111f)
    142 CV_SYMBOL(S_MANSLOT       , 0x1120)
    143 CV_SYMBOL(S_MANMANYREG    , 0x1121)
    144 CV_SYMBOL(S_MANREGREL     , 0x1122)
    145 CV_SYMBOL(S_MANMANYREG2   , 0x1123)
    146 CV_SYMBOL(S_UNAMESPACE    , 0x1124)
    147 CV_SYMBOL(S_DATAREF       , 0x1126)
    148 CV_SYMBOL(S_ANNOTATIONREF , 0x1128)
    149 CV_SYMBOL(S_TOKENREF      , 0x1129)
    150 CV_SYMBOL(S_GMANPROC      , 0x112a)
    151 CV_SYMBOL(S_LMANPROC      , 0x112b)
    152 CV_SYMBOL(S_ATTR_FRAMEREL , 0x112e)
    153 CV_SYMBOL(S_ATTR_REGISTER , 0x112f)
    154 CV_SYMBOL(S_ATTR_REGREL   , 0x1130)
    155 CV_SYMBOL(S_ATTR_MANYREG  , 0x1131)
    156 
    157 
    158 CV_SYMBOL(S_SEPCODE       , 0x1132)
    159 CV_SYMBOL(S_LOCAL_2005    , 0x1133)
    160 CV_SYMBOL(S_DEFRANGE_2005 , 0x1134)
    161 CV_SYMBOL(S_DEFRANGE2_2005, 0x1135)
    162 CV_SYMBOL(S_DISCARDED     , 0x113b)
    163 
    164 // Current symbol types for most procedures as of this writing.
    165 CV_SYMBOL(S_LPROCMIPS_ID   , 0x1148)
    166 CV_SYMBOL(S_GPROCMIPS_ID   , 0x1149)
    167 CV_SYMBOL(S_LPROCIA64_ID   , 0x114a)
    168 CV_SYMBOL(S_GPROCIA64_ID   , 0x114b)
    169 
    170 CV_SYMBOL(S_DEFRANGE_HLSL  , 0x1150)
    171 CV_SYMBOL(S_GDATA_HLSL     , 0x1151)
    172 CV_SYMBOL(S_LDATA_HLSL     , 0x1152)
    173 CV_SYMBOL(S_LOCAL_DPC_GROUPSHARED, 0x1154)
    174 CV_SYMBOL(S_DEFRANGE_DPC_PTR_TAG, 0x1157)
    175 CV_SYMBOL(S_DPC_SYM_TAG_MAP, 0x1158)
    176 CV_SYMBOL(S_ARMSWITCHTABLE , 0x1159)
    177 CV_SYMBOL(S_POGODATA       , 0x115c)
    178 CV_SYMBOL(S_INLINESITE2    , 0x115d)
    179 CV_SYMBOL(S_MOD_TYPEREF    , 0x115f)
    180 CV_SYMBOL(S_REF_MINIPDB    , 0x1160)
    181 CV_SYMBOL(S_PDBMAP         , 0x1161)
    182 CV_SYMBOL(S_GDATA_HLSL32   , 0x1162)
    183 CV_SYMBOL(S_LDATA_HLSL32   , 0x1163)
    184 CV_SYMBOL(S_GDATA_HLSL32_EX, 0x1164)
    185 CV_SYMBOL(S_LDATA_HLSL32_EX, 0x1165)
    186 
    187 CV_SYMBOL(S_FASTLINK, 0x1167)
    188 
    189 // Known symbol types
    190 SYMBOL_RECORD(S_END                  , 0x0006, ScopeEndSym)
    191 SYMBOL_RECORD_ALIAS(S_INLINESITE_END , 0x114e, InlineSiteEnd, ScopeEndSym)
    192 SYMBOL_RECORD_ALIAS(S_PROC_ID_END    , 0x114f, ProcEnd, ScopeEndSym)
    193 
    194 SYMBOL_RECORD(S_THUNK32       , 0x1102, Thunk32Sym)
    195 SYMBOL_RECORD(S_TRAMPOLINE    , 0x112c, TrampolineSym)
    196 SYMBOL_RECORD(S_SECTION       , 0x1136, SectionSym)
    197 SYMBOL_RECORD(S_COFFGROUP     , 0x1137, CoffGroupSym)
    198 SYMBOL_RECORD(S_EXPORT        , 0x1138, ExportSym)
    199 
    200 SYMBOL_RECORD(S_LPROC32       , 0x110f, ProcSym)
    201 SYMBOL_RECORD_ALIAS(S_GPROC32       , 0x1110, GlobalProcSym, ProcSym)
    202 SYMBOL_RECORD_ALIAS(S_LPROC32_ID     , 0x1146, ProcIdSym, ProcSym)
    203 SYMBOL_RECORD_ALIAS(S_GPROC32_ID     , 0x1147, GlobalProcIdSym, ProcSym)
    204 SYMBOL_RECORD_ALIAS(S_LPROC32_DPC    , 0x1155, DPCProcSym, ProcSym)
    205 SYMBOL_RECORD_ALIAS(S_LPROC32_DPC_ID , 0x1156, DPCProcIdSym, ProcSym)
    206 
    207 SYMBOL_RECORD(S_REGISTER      , 0x1106, RegisterSym)
    208 SYMBOL_RECORD(S_PUB32         , 0x110e, PublicSym32)
    209 
    210 SYMBOL_RECORD(S_PROCREF       , 0x1125, ProcRefSym)
    211 SYMBOL_RECORD_ALIAS(S_LPROCREF, 0x1127, LocalProcRef, ProcRefSym)
    212 
    213 
    214 SYMBOL_RECORD(S_ENVBLOCK      , 0x113d, EnvBlockSym)
    215 
    216 SYMBOL_RECORD(S_INLINESITE     , 0x114d, InlineSiteSym)
    217 SYMBOL_RECORD(S_LOCAL         , 0x113e, LocalSym)
    218 SYMBOL_RECORD(S_DEFRANGE      , 0x113f, DefRangeSym)
    219 SYMBOL_RECORD(S_DEFRANGE_SUBFIELD, 0x1140, DefRangeSubfieldSym)
    220 SYMBOL_RECORD(S_DEFRANGE_REGISTER, 0x1141, DefRangeRegisterSym)
    221 SYMBOL_RECORD(S_DEFRANGE_FRAMEPOINTER_REL, 0x1142, DefRangeFramePointerRelSym)
    222 SYMBOL_RECORD(S_DEFRANGE_SUBFIELD_REGISTER, 0x1143, DefRangeSubfieldRegisterSym)
    223 SYMBOL_RECORD(S_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE, 0x1144, DefRangeFramePointerRelFullScopeSym)
    224 SYMBOL_RECORD(S_DEFRANGE_REGISTER_REL, 0x1145, DefRangeRegisterRelSym)
    225 SYMBOL_RECORD(S_BLOCK32       , 0x1103, BlockSym)
    226 SYMBOL_RECORD(S_LABEL32       , 0x1105, LabelSym)
    227 SYMBOL_RECORD(S_OBJNAME       , 0x1101, ObjNameSym)
    228 SYMBOL_RECORD(S_COMPILE2      , 0x1116, Compile2Sym)
    229 SYMBOL_RECORD(S_COMPILE3      , 0x113c, Compile3Sym)
    230 SYMBOL_RECORD(S_FRAMEPROC     , 0x1012, FrameProcSym)
    231 SYMBOL_RECORD(S_CALLSITEINFO  , 0x1139, CallSiteInfoSym)
    232 SYMBOL_RECORD(S_FILESTATIC     , 0x1153, FileStaticSym)
    233 SYMBOL_RECORD(S_HEAPALLOCSITE  , 0x115e, HeapAllocationSiteSym)
    234 SYMBOL_RECORD(S_FRAMECOOKIE   , 0x113a, FrameCookieSym)
    235 
    236 SYMBOL_RECORD(S_CALLEES        , 0x115a, CallerSym)
    237 SYMBOL_RECORD_ALIAS(S_CALLERS        , 0x115b, CalleeSym, CallerSym)
    238 
    239 SYMBOL_RECORD(S_UDT           , 0x1108, UDTSym)
    240 SYMBOL_RECORD_ALIAS(S_COBOLUDT      , 0x1109, CobolUDT, UDTSym)
    241 
    242 SYMBOL_RECORD(S_BUILDINFO      , 0x114c, BuildInfoSym)
    243 SYMBOL_RECORD(S_BPREL32       , 0x110b, BPRelativeSym)
    244 SYMBOL_RECORD(S_REGREL32      , 0x1111, RegRelativeSym)
    245 
    246 SYMBOL_RECORD(S_CONSTANT      , 0x1107, ConstantSym)
    247 SYMBOL_RECORD_ALIAS(S_MANCONSTANT   , 0x112d, ManagedConstant, ConstantSym)
    248 
    249 SYMBOL_RECORD(S_LDATA32       , 0x110c, DataSym)
    250 SYMBOL_RECORD_ALIAS(S_GDATA32       , 0x110d, GlobalData, DataSym)
    251 SYMBOL_RECORD_ALIAS(S_LMANDATA      , 0x111c, ManagedLocalData, DataSym)
    252 SYMBOL_RECORD_ALIAS(S_GMANDATA      , 0x111d, ManagedGlobalData, DataSym)
    253 
    254 SYMBOL_RECORD(S_LTHREAD32     , 0x1112, ThreadLocalDataSym)
    255 SYMBOL_RECORD_ALIAS(S_GTHREAD32     , 0x1113, GlobalTLS, ThreadLocalDataSym)
    256 
    257 
    258 #undef CV_SYMBOL
    259 #undef SYMBOL_RECORD
    260 #undef SYMBOL_RECORD_ALIAS
    261