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