user32/tests: Link directly to imm32.
[wine.git] / include / cvconst.h
blob9536ee8202d8f5f11e8b19ecdc591e744df4009c
1 /*
2 * File cvconst.h - MS debug information
4 * Copyright (C) 2004, Eric Pouech
5 * Copyright (C) 2012, André Hentschel
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 /* information in this file is highly derived from MSDN DIA information pages */
24 /* symbols & types enumeration */
25 enum SymTagEnum
27 SymTagNull,
28 SymTagExe,
29 SymTagCompiland,
30 SymTagCompilandDetails,
31 SymTagCompilandEnv,
32 SymTagFunction,
33 SymTagBlock,
34 SymTagData,
35 SymTagAnnotation,
36 SymTagLabel,
37 SymTagPublicSymbol,
38 SymTagUDT,
39 SymTagEnum,
40 SymTagFunctionType,
41 SymTagPointerType,
42 SymTagArrayType,
43 SymTagBaseType,
44 SymTagTypedef,
45 SymTagBaseClass,
46 SymTagFriend,
47 SymTagFunctionArgType,
48 SymTagFuncDebugStart,
49 SymTagFuncDebugEnd,
50 SymTagUsingNamespace,
51 SymTagVTableShape,
52 SymTagVTable,
53 SymTagCustom,
54 SymTagThunk,
55 SymTagCustomType,
56 SymTagManagedType,
57 SymTagDimension,
58 SymTagCallSite,
59 SymTagInlineSite,
60 SymTagBaseInterface,
61 SymTagVectorType,
62 SymTagMatrixType,
63 SymTagHLSLType,
64 SymTagCaller,
65 SymTagCallee,
66 SymTagExport,
67 SymTagHeapAllocationSite,
68 SymTagCoffGroup,
69 SymTagInlinee,
70 SymTagMax
73 enum BasicType
75 btNoType = 0,
76 btVoid = 1,
77 btChar = 2,
78 btWChar = 3,
79 btInt = 6,
80 btUInt = 7,
81 btFloat = 8,
82 btBCD = 9,
83 btBool = 10,
84 btLong = 13,
85 btULong = 14,
86 btCurrency = 25,
87 btDate = 26,
88 btVariant = 27,
89 btComplex = 28,
90 btBit = 29,
91 btBSTR = 30,
92 btHresult = 31,
93 btChar16 = 32,
94 btChar32 = 33,
95 btChar8 = 34,
98 /* kind of UDT */
99 enum UdtKind
101 UdtStruct,
102 UdtClass,
103 UdtUnion
106 /* where a SymTagData is */
107 enum LocationType
109 LocIsNull,
110 LocIsStatic,
111 LocIsTLS,
112 LocIsRegRel,
113 LocIsThisRel,
114 LocIsEnregistered,
115 LocIsBitField,
116 LocIsSlot,
117 LocIsIlRel,
118 LocInMetaData,
119 LocIsConstant,
120 LocTypeMax
123 /* kind of SymTagData */
124 enum DataKind
126 DataIsUnknown,
127 DataIsLocal,
128 DataIsStaticLocal,
129 DataIsParam,
130 DataIsObjectPtr,
131 DataIsFileStatic,
132 DataIsGlobal,
133 DataIsMember,
134 DataIsStaticMember,
135 DataIsConstant
138 /* values for registers (on different CPUs) */
139 enum CV_HREG_e
141 /* those values are common to all supported CPUs (and CPU independent) */
142 CV_ALLREG_ERR = 30000,
143 CV_ALLREG_TEB = 30001,
144 CV_ALLREG_TIMER = 30002,
145 CV_ALLREG_EFAD1 = 30003,
146 CV_ALLREG_EFAD2 = 30004,
147 CV_ALLREG_EFAD3 = 30005,
148 CV_ALLREG_VFRAME = 30006,
149 CV_ALLREG_HANDLE = 30007,
150 CV_ALLREG_PARAMS = 30008,
151 CV_ALLREG_LOCALS = 30009,
152 CV_ALLREG_TID = 30010,
153 CV_ALLREG_ENV = 30011,
154 CV_ALLREG_CMDLN = 30012,
156 /* Intel x86 CPU */
157 CV_REG_NONE = 0,
158 CV_REG_AL = 1,
159 CV_REG_CL = 2,
160 CV_REG_DL = 3,
161 CV_REG_BL = 4,
162 CV_REG_AH = 5,
163 CV_REG_CH = 6,
164 CV_REG_DH = 7,
165 CV_REG_BH = 8,
166 CV_REG_AX = 9,
167 CV_REG_CX = 10,
168 CV_REG_DX = 11,
169 CV_REG_BX = 12,
170 CV_REG_SP = 13,
171 CV_REG_BP = 14,
172 CV_REG_SI = 15,
173 CV_REG_DI = 16,
174 CV_REG_EAX = 17,
175 CV_REG_ECX = 18,
176 CV_REG_EDX = 19,
177 CV_REG_EBX = 20,
178 CV_REG_ESP = 21,
179 CV_REG_EBP = 22,
180 CV_REG_ESI = 23,
181 CV_REG_EDI = 24,
182 CV_REG_ES = 25,
183 CV_REG_CS = 26,
184 CV_REG_SS = 27,
185 CV_REG_DS = 28,
186 CV_REG_FS = 29,
187 CV_REG_GS = 30,
188 CV_REG_IP = 31,
189 CV_REG_FLAGS = 32,
190 CV_REG_EIP = 33,
191 CV_REG_EFLAGS = 34,
193 /* <pcode> */
194 CV_REG_TEMP = 40,
195 CV_REG_TEMPH = 41,
196 CV_REG_QUOTE = 42,
197 CV_REG_PCDR3 = 43, /* this includes PCDR4 to PCDR7 */
198 CV_REG_CR0 = 80, /* this includes CR1 to CR4 */
199 CV_REG_DR0 = 90, /* this includes DR1 to DR7 */
200 /* </pcode> */
202 CV_REG_GDTR = 110,
203 CV_REG_GDTL = 111,
204 CV_REG_IDTR = 112,
205 CV_REG_IDTL = 113,
206 CV_REG_LDTR = 114,
207 CV_REG_TR = 115,
209 CV_REG_PSEUDO1 = 116, /* this includes Pseudo02 to Pseudo09 */
210 CV_REG_ST0 = 128, /* this includes ST1 to ST7 */
211 CV_REG_CTRL = 136,
212 CV_REG_STAT = 137,
213 CV_REG_TAG = 138,
214 CV_REG_FPIP = 139,
215 CV_REG_FPCS = 140,
216 CV_REG_FPDO = 141,
217 CV_REG_FPDS = 142,
218 CV_REG_ISEM = 143,
219 CV_REG_FPEIP = 144,
220 CV_REG_FPEDO = 145,
221 CV_REG_MM0 = 146, /* this includes MM1 to MM7 */
222 CV_REG_XMM0 = 154, /* this includes XMM1 to XMM7 */
223 CV_REG_XMM00 = 162,
224 CV_REG_XMM0L = 194, /* this includes XMM1L to XMM7L */
225 CV_REG_XMM0H = 202, /* this includes XMM1H to XMM7H */
226 CV_REG_MXCSR = 211,
227 CV_REG_EDXEAX = 212,
228 CV_REG_EMM0L = 220,
229 CV_REG_EMM0H = 228,
230 CV_REG_MM00 = 236,
231 CV_REG_MM01 = 237,
232 CV_REG_MM10 = 238,
233 CV_REG_MM11 = 239,
234 CV_REG_MM20 = 240,
235 CV_REG_MM21 = 241,
236 CV_REG_MM30 = 242,
237 CV_REG_MM31 = 243,
238 CV_REG_MM40 = 244,
239 CV_REG_MM41 = 245,
240 CV_REG_MM50 = 246,
241 CV_REG_MM51 = 247,
242 CV_REG_MM60 = 248,
243 CV_REG_MM61 = 249,
244 CV_REG_MM70 = 250,
245 CV_REG_MM71 = 251,
247 CV_REG_YMM0 = 252, /* this includes YMM1 to YMM7 */
248 CV_REG_YMM0H = 260, /* this includes YMM1H to YMM7H */
249 CV_REG_YMM0I0 = 268, /* this includes YMM0I1 to YMM0I3 */
250 CV_REG_YMM1I0 = 272, /* this includes YMM1I1 to YMM1I3 */
251 CV_REG_YMM2I0 = 276, /* this includes YMM2I1 to YMM2I3 */
252 CV_REG_YMM3I0 = 280, /* this includes YMM3I1 to YMM3I3 */
253 CV_REG_YMM4I0 = 284, /* this includes YMM4I1 to YMM4I3 */
254 CV_REG_YMM5I0 = 288, /* this includes YMM5I1 to YMM5I3 */
255 CV_REG_YMM6I0 = 292, /* this includes YMM6I1 to YMM6I3 */
256 CV_REG_YMM7I0 = 296, /* this includes YMM7I1 to YMM7I3 */
257 CV_REG_YMM0F0 = 300, /* this includes YMM0F1 to YMM0F7 */
258 CV_REG_YMM1F0 = 308, /* this includes YMM1F1 to YMM1F7 */
259 CV_REG_YMM2F0 = 316, /* this includes YMM2F1 to YMM2F7 */
260 CV_REG_YMM3F0 = 324, /* this includes YMM3F1 to YMM3F7 */
261 CV_REG_YMM4F0 = 332, /* this includes YMM4F1 to YMM4F7 */
262 CV_REG_YMM5F0 = 340, /* this includes YMM5F1 to YMM5F7 */
263 CV_REG_YMM6F0 = 348, /* this includes YMM6F1 to YMM6F7 */
264 CV_REG_YMM7F0 = 356, /* this includes YMM7F1 to YMM7F7 */
265 CV_REG_YMM0D0 = 364, /* this includes YMM0D1 to YMM0D3 */
266 CV_REG_YMM1D0 = 368, /* this includes YMM1D1 to YMM1D3 */
267 CV_REG_YMM2D0 = 372, /* this includes YMM2D1 to YMM2D3 */
268 CV_REG_YMM3D0 = 376, /* this includes YMM3D1 to YMM3D3 */
269 CV_REG_YMM4D0 = 380, /* this includes YMM4D1 to YMM4D3 */
270 CV_REG_YMM5D0 = 384, /* this includes YMM5D1 to YMM5D3 */
271 CV_REG_YMM6D0 = 388, /* this includes YMM6D1 to YMM6D3 */
272 CV_REG_YMM7D0 = 392, /* this includes YMM7D1 to YMM7D3 */
274 /* Motorola 68K CPU */
275 CV_R68_D0 = 0, /* this includes D1 to D7 too */
276 CV_R68_A0 = 8, /* this includes A1 to A7 too */
277 CV_R68_CCR = 16,
278 CV_R68_SR = 17,
279 CV_R68_USP = 18,
280 CV_R68_MSP = 19,
281 CV_R68_SFC = 20,
282 CV_R68_DFC = 21,
283 CV_R68_CACR = 22,
284 CV_R68_VBR = 23,
285 CV_R68_CAAR = 24,
286 CV_R68_ISP = 25,
287 CV_R68_PC = 26,
288 CV_R68_FPCR = 28,
289 CV_R68_FPSR = 29,
290 CV_R68_FPIAR = 30,
291 CV_R68_FP0 = 32, /* this includes FP1 to FP7 */
292 CV_R68_MMUSR030 = 41,
293 CV_R68_MMUSR = 42,
294 CV_R68_URP = 43,
295 CV_R68_DTT0 = 44,
296 CV_R68_DTT1 = 45,
297 CV_R68_ITT0 = 46,
298 CV_R68_ITT1 = 47,
299 CV_R68_PSR = 51,
300 CV_R68_PCSR = 52,
301 CV_R68_VAL = 53,
302 CV_R68_CRP = 54,
303 CV_R68_SRP = 55,
304 CV_R68_DRP = 56,
305 CV_R68_TC = 57,
306 CV_R68_AC = 58,
307 CV_R68_SCC = 59,
308 CV_R68_CAL = 60,
309 CV_R68_TT0 = 61,
310 CV_R68_TT1 = 62,
311 CV_R68_BAD0 = 64, /* this includes BAD1 to BAD7 */
312 CV_R68_BAC0 = 72, /* this includes BAC1 to BAC7 */
314 /* MIPS 4000 CPU */
315 CV_M4_NOREG = CV_REG_NONE,
316 CV_M4_IntZERO = 10,
317 CV_M4_IntAT = 11,
318 CV_M4_IntV0 = 12,
319 CV_M4_IntV1 = 13,
320 CV_M4_IntA0 = 14, /* this includes IntA1 to IntA3 */
321 CV_M4_IntT0 = 18, /* this includes IntT1 to IntT7 */
322 CV_M4_IntS0 = 26, /* this includes IntS1 to IntS7 */
323 CV_M4_IntT8 = 34,
324 CV_M4_IntT9 = 35,
325 CV_M4_IntKT0 = 36,
326 CV_M4_IntKT1 = 37,
327 CV_M4_IntGP = 38,
328 CV_M4_IntSP = 39,
329 CV_M4_IntS8 = 40,
330 CV_M4_IntRA = 41,
331 CV_M4_IntLO = 42,
332 CV_M4_IntHI = 43,
333 CV_M4_Fir = 50,
334 CV_M4_Psr = 51,
335 CV_M4_FltF0 = 60, /* this includes FltF1 to Flt31 */
336 CV_M4_FltFsr = 92,
338 /* Alpha AXP CPU */
339 CV_ALPHA_NOREG = CV_REG_NONE,
340 CV_ALPHA_FltF0 = 10, /* this includes FltF1 to FltF31 */
341 CV_ALPHA_IntV0 = 42,
342 CV_ALPHA_IntT0 = 43, /* this includes T1 to T7 */
343 CV_ALPHA_IntS0 = 51, /* this includes S1 to S5 */
344 CV_ALPHA_IntFP = 57,
345 CV_ALPHA_IntA0 = 58, /* this includes A1 to A5 */
346 CV_ALPHA_IntT8 = 64,
347 CV_ALPHA_IntT9 = 65,
348 CV_ALPHA_IntT10 = 66,
349 CV_ALPHA_IntT11 = 67,
350 CV_ALPHA_IntRA = 68,
351 CV_ALPHA_IntT12 = 69,
352 CV_ALPHA_IntAT = 70,
353 CV_ALPHA_IntGP = 71,
354 CV_ALPHA_IntSP = 72,
355 CV_ALPHA_IntZERO = 73,
356 CV_ALPHA_Fpcr = 74,
357 CV_ALPHA_Fir = 75,
358 CV_ALPHA_Psr = 76,
359 CV_ALPHA_FltFsr = 77,
360 CV_ALPHA_SoftFpcr = 78,
362 /* Motorola & IBM PowerPC CPU */
363 CV_PPC_GPR0 = 1, /* this includes GPR1 to GPR31 */
364 CV_PPC_CR = 33,
365 CV_PPC_CR0 = 34, /* this includes CR1 to CR7 */
366 CV_PPC_FPR0 = 42, /* this includes FPR1 to FPR31 */
368 CV_PPC_FPSCR = 74,
369 CV_PPC_MSR = 75,
370 CV_PPC_SR0 = 76, /* this includes SR1 to SR15 */
371 CV_PPC_PC = 99,
372 CV_PPC_MQ = 100,
373 CV_PPC_XER = 101,
374 CV_PPC_RTCU = 104,
375 CV_PPC_RTCL = 105,
376 CV_PPC_LR = 108,
377 CV_PPC_CTR = 109,
378 CV_PPC_COMPARE = 110,
379 CV_PPC_COUNT = 111,
380 CV_PPC_DSISR = 118,
381 CV_PPC_DAR = 119,
382 CV_PPC_DEC = 122,
383 CV_PPC_SDR1 = 125,
384 CV_PPC_SRR0 = 126,
385 CV_PPC_SRR1 = 127,
386 CV_PPC_SPRG0 = 372, /* this includes SPRG1 to SPRG3 */
387 CV_PPC_ASR = 280,
388 CV_PPC_EAR = 382,
389 CV_PPC_PVR = 287,
390 CV_PPC_BAT0U = 628,
391 CV_PPC_BAT0L = 629,
392 CV_PPC_BAT1U = 630,
393 CV_PPC_BAT1L = 631,
394 CV_PPC_BAT2U = 632,
395 CV_PPC_BAT2L = 633,
396 CV_PPC_BAT3U = 634,
397 CV_PPC_BAT3L = 635,
398 CV_PPC_DBAT0U = 636,
399 CV_PPC_DBAT0L = 637,
400 CV_PPC_DBAT1U = 638,
401 CV_PPC_DBAT1L = 639,
402 CV_PPC_DBAT2U = 640,
403 CV_PPC_DBAT2L = 641,
404 CV_PPC_DBAT3U = 642,
405 CV_PPC_DBAT3L = 643,
406 CV_PPC_PMR0 = 1044, /* this includes PMR1 to PMR15 */
407 CV_PPC_DMISS = 1076,
408 CV_PPC_DCMP = 1077,
409 CV_PPC_HASH1 = 1078,
410 CV_PPC_HASH2 = 1079,
411 CV_PPC_IMISS = 1080,
412 CV_PPC_ICMP = 1081,
413 CV_PPC_RPA = 1082,
414 CV_PPC_HID0 = 1108, /* this includes HID1 to HID15 */
416 /* Java */
417 CV_JAVA_PC = 1,
419 /* Hitachi SH3 CPU */
420 CV_SH3_NOREG = CV_REG_NONE,
421 CV_SH3_IntR0 = 10, /* this include R1 to R13 */
422 CV_SH3_IntFp = 24,
423 CV_SH3_IntSp = 25,
424 CV_SH3_Gbr = 38,
425 CV_SH3_Pr = 39,
426 CV_SH3_Mach = 40,
427 CV_SH3_Macl = 41,
428 CV_SH3_Pc = 50,
429 CV_SH3_Sr = 51,
430 CV_SH3_BarA = 60,
431 CV_SH3_BasrA = 61,
432 CV_SH3_BamrA = 62,
433 CV_SH3_BbrA = 63,
434 CV_SH3_BarB = 64,
435 CV_SH3_BasrB = 65,
436 CV_SH3_BamrB = 66,
437 CV_SH3_BbrB = 67,
438 CV_SH3_BdrB = 68,
439 CV_SH3_BdmrB = 69,
440 CV_SH3_Brcr = 70,
441 CV_SH_Fpscr = 75,
442 CV_SH_Fpul = 76,
443 CV_SH_FpR0 = 80, /* this includes FpR1 to FpR15 */
444 CV_SH_XFpR0 = 96, /* this includes XFpR1 to XXFpR15 */
446 /* ARM CPU */
447 CV_ARM_NOREG = CV_REG_NONE,
448 CV_ARM_R0 = 10, /* this includes R1 to R12 */
449 CV_ARM_SP = 23,
450 CV_ARM_LR = 24,
451 CV_ARM_PC = 25,
452 CV_ARM_CPSR = 26,
453 CV_ARM_ACC0 = 27,
454 CV_ARM_FPSCR = 40,
455 CV_ARM_FPEXC = 41,
456 CV_ARM_FS0 = 50, /* this includes FS1 to FS31 */
457 CV_ARM_FPEXTRA0 = 90, /* this includes FPEXTRA1 to FPEXTRA7 */
458 CV_ARM_WR0 = 128, /* this includes WR1 to WR15 */
459 CV_ARM_WCID = 144,
460 CV_ARM_WCON = 145,
461 CV_ARM_WCSSF = 146,
462 CV_ARM_WCASF = 147,
463 CV_ARM_WC4 = 148,
464 CV_ARM_WC5 = 149,
465 CV_ARM_WC6 = 150,
466 CV_ARM_WC7 = 151,
467 CV_ARM_WCGR0 = 152, /* this includes WCGR1 to WCGR3 */
468 CV_ARM_WC12 = 156,
469 CV_ARM_WC13 = 157,
470 CV_ARM_WC14 = 158,
471 CV_ARM_WC15 = 159,
472 CV_ARM_FS32 = 200, /* this includes FS33 to FS63 */
473 CV_ARM_ND0 = 300, /* this includes ND1 to ND31 */
474 CV_ARM_NQ0 = 400, /* this includes NQ1 to NQ15 */
476 /* ARM64 CPU */
477 CV_ARM64_NOREG = CV_REG_NONE,
478 CV_ARM64_W0 = 10, /* this includes W0 to W30 */
479 CV_ARM64_WZR = 41,
480 CV_ARM64_PC = 42, /* Wine extension */
481 CV_ARM64_PSTATE = 43, /* Wine extension */
482 CV_ARM64_X0 = 50, /* this includes X0 to X28 */
483 CV_ARM64_IP0 = 66, /* Same as X16 */
484 CV_ARM64_IP1 = 67, /* Same as X17 */
485 CV_ARM64_FP = 79,
486 CV_ARM64_LR = 80,
487 CV_ARM64_SP = 81,
488 CV_ARM64_ZR = 82,
489 CV_ARM64_NZCV = 90,
490 CV_ARM64_S0 = 100, /* this includes S0 to S31 */
491 CV_ARM64_D0 = 140, /* this includes D0 to D31 */
492 CV_ARM64_Q0 = 180, /* this includes Q0 to Q31 */
493 CV_ARM64_FPSR = 220,
495 /* Intel IA64 CPU */
496 CV_IA64_NOREG = CV_REG_NONE,
497 CV_IA64_Br0 = 512, /* this includes Br1 to Br7 */
498 CV_IA64_P0 = 704, /* this includes P1 to P63 */
499 CV_IA64_Preds = 768,
500 CV_IA64_IntH0 = 832, /* this includes H1 to H15 */
501 CV_IA64_Ip = 1016,
502 CV_IA64_Umask = 1017,
503 CV_IA64_Cfm = 1018,
504 CV_IA64_Psr = 1019,
505 CV_IA64_Nats = 1020,
506 CV_IA64_Nats2 = 1021,
507 CV_IA64_Nats3 = 1022,
508 CV_IA64_IntR0 = 1024, /* this includes R1 to R127 */
509 CV_IA64_FltF0 = 2048, /* this includes FltF1 to FltF127 */
510 /* some IA64 registers missing */
512 /* TriCore CPU */
513 CV_TRI_NOREG = CV_REG_NONE,
514 CV_TRI_D0 = 10, /* includes D1 to D15 */
515 CV_TRI_A0 = 26, /* includes A1 to A15 */
516 CV_TRI_E0 = 42,
517 CV_TRI_E2 = 43,
518 CV_TRI_E4 = 44,
519 CV_TRI_E6 = 45,
520 CV_TRI_E8 = 46,
521 CV_TRI_E10 = 47,
522 CV_TRI_E12 = 48,
523 CV_TRI_E14 = 49,
524 CV_TRI_EA0 = 50,
525 CV_TRI_EA2 = 51,
526 CV_TRI_EA4 = 52,
527 CV_TRI_EA6 = 53,
528 CV_TRI_EA8 = 54,
529 CV_TRI_EA10 = 55,
530 CV_TRI_EA12 = 56,
531 CV_TRI_EA14 = 57,
532 CV_TRI_PSW = 58,
533 CV_TRI_PCXI = 59,
534 CV_TRI_PC = 60,
535 CV_TRI_FCX = 61,
536 CV_TRI_LCX = 62,
537 CV_TRI_ISP = 63,
538 CV_TRI_ICR = 64,
539 CV_TRI_BIV = 65,
540 CV_TRI_BTV = 66,
541 CV_TRI_SYSCON = 67,
542 CV_TRI_DPRx_0 = 68, /* includes DPRx_1 to DPRx_3 */
543 CV_TRI_CPRx_0 = 68, /* includes CPRx_1 to CPRx_3 */
544 CV_TRI_DPMx_0 = 68, /* includes DPMx_1 to DPMx_3 */
545 CV_TRI_CPMx_0 = 68, /* includes CPMx_1 to CPMx_3 */
546 CV_TRI_DBGSSR = 72,
547 CV_TRI_EXEVT = 73,
548 CV_TRI_SWEVT = 74,
549 CV_TRI_CREVT = 75,
550 CV_TRI_TRnEVT = 76,
551 CV_TRI_MMUCON = 77,
552 CV_TRI_ASI = 78,
553 CV_TRI_TVA = 79,
554 CV_TRI_TPA = 80,
555 CV_TRI_TPX = 81,
556 CV_TRI_TFA = 82,
558 /* AM33 (and the likes) CPU */
559 CV_AM33_NOREG = CV_REG_NONE,
560 CV_AM33_E0 = 10, /* this includes E1 to E7 */
561 CV_AM33_A0 = 20, /* this includes A1 to A3 */
562 CV_AM33_D0 = 30, /* this includes D1 to D3 */
563 CV_AM33_FS0 = 40, /* this includes FS1 to FS31 */
564 CV_AM33_SP = 80,
565 CV_AM33_PC = 81,
566 CV_AM33_MDR = 82,
567 CV_AM33_MDRQ = 83,
568 CV_AM33_MCRH = 84,
569 CV_AM33_MCRL = 85,
570 CV_AM33_MCVF = 86,
571 CV_AM33_EPSW = 87,
572 CV_AM33_FPCR = 88,
573 CV_AM33_LIR = 89,
574 CV_AM33_LAR = 90,
576 /* Mitsubishi M32R CPU */
577 CV_M32R_NOREG = CV_REG_NONE,
578 CV_M32R_R0 = 10, /* this includes R1 to R11 */
579 CV_M32R_R12 = 22,
580 CV_M32R_R13 = 23,
581 CV_M32R_R14 = 24,
582 CV_M32R_R15 = 25,
583 CV_M32R_PSW = 26,
584 CV_M32R_CBR = 27,
585 CV_M32R_SPI = 28,
586 CV_M32R_SPU = 29,
587 CV_M32R_SPO = 30,
588 CV_M32R_BPC = 31,
589 CV_M32R_ACHI = 32,
590 CV_M32R_ACLO = 33,
591 CV_M32R_PC = 34,
593 /* AMD/Intel x86_64 CPU */
594 CV_AMD64_NONE = CV_REG_NONE,
595 CV_AMD64_AL = CV_REG_AL,
596 CV_AMD64_CL = CV_REG_CL,
597 CV_AMD64_DL = CV_REG_DL,
598 CV_AMD64_BL = CV_REG_BL,
599 CV_AMD64_AH = CV_REG_AH,
600 CV_AMD64_CH = CV_REG_CH,
601 CV_AMD64_DH = CV_REG_DH,
602 CV_AMD64_BH = CV_REG_BH,
603 CV_AMD64_AX = CV_REG_AX,
604 CV_AMD64_CX = CV_REG_CX,
605 CV_AMD64_DX = CV_REG_DX,
606 CV_AMD64_BX = CV_REG_BX,
607 CV_AMD64_SP = CV_REG_SP,
608 CV_AMD64_BP = CV_REG_BP,
609 CV_AMD64_SI = CV_REG_SI,
610 CV_AMD64_DI = CV_REG_DI,
611 CV_AMD64_EAX = CV_REG_EAX,
612 CV_AMD64_ECX = CV_REG_ECX,
613 CV_AMD64_EDX = CV_REG_EDX,
614 CV_AMD64_EBX = CV_REG_EBX,
615 CV_AMD64_ESP = CV_REG_ESP,
616 CV_AMD64_EBP = CV_REG_EBP,
617 CV_AMD64_ESI = CV_REG_ESI,
618 CV_AMD64_EDI = CV_REG_EDI,
619 CV_AMD64_ES = CV_REG_ES,
620 CV_AMD64_CS = CV_REG_CS,
621 CV_AMD64_SS = CV_REG_SS,
622 CV_AMD64_DS = CV_REG_DS,
623 CV_AMD64_FS = CV_REG_FS,
624 CV_AMD64_GS = CV_REG_GS,
625 CV_AMD64_FLAGS = CV_REG_FLAGS,
626 CV_AMD64_RIP = CV_REG_EIP,
627 CV_AMD64_EFLAGS = CV_REG_EFLAGS,
629 /* <pcode> */
630 CV_AMD64_TEMP = CV_REG_TEMP,
631 CV_AMD64_TEMPH = CV_REG_TEMPH,
632 CV_AMD64_QUOTE = CV_REG_QUOTE,
633 CV_AMD64_PCDR3 = CV_REG_PCDR3, /* this includes PCDR4 to PCDR7 */
634 CV_AMD64_CR0 = CV_REG_CR0, /* this includes CR1 to CR4 */
635 CV_AMD64_DR0 = CV_REG_DR0, /* this includes DR1 to DR7 */
636 /* </pcode> */
638 CV_AMD64_GDTR = CV_REG_GDTR,
639 CV_AMD64_GDTL = CV_REG_GDTL,
640 CV_AMD64_IDTR = CV_REG_IDTR,
641 CV_AMD64_IDTL = CV_REG_IDTL,
642 CV_AMD64_LDTR = CV_REG_LDTR,
643 CV_AMD64_TR = CV_REG_TR,
645 CV_AMD64_PSEUDO1 = CV_REG_PSEUDO1, /* this includes Pseudo02 to Pseudo09 */
646 CV_AMD64_ST0 = CV_REG_ST0, /* this includes ST1 to ST7 */
647 CV_AMD64_CTRL = CV_REG_CTRL,
648 CV_AMD64_STAT = CV_REG_STAT,
649 CV_AMD64_TAG = CV_REG_TAG,
650 CV_AMD64_FPIP = CV_REG_FPIP,
651 CV_AMD64_FPCS = CV_REG_FPCS,
652 CV_AMD64_FPDO = CV_REG_FPDO,
653 CV_AMD64_FPDS = CV_REG_FPDS,
654 CV_AMD64_ISEM = CV_REG_ISEM,
655 CV_AMD64_FPEIP = CV_REG_FPEIP,
656 CV_AMD64_FPEDO = CV_REG_FPEDO,
657 CV_AMD64_MM0 = CV_REG_MM0, /* this includes MM1 to MM7 */
658 CV_AMD64_XMM0 = CV_REG_XMM0, /* this includes XMM1 to XMM7 */
659 CV_AMD64_XMM00 = CV_REG_XMM00,
660 CV_AMD64_XMM0L = CV_REG_XMM0L, /* this includes XMM1L to XMM7L */
661 CV_AMD64_XMM0H = CV_REG_XMM0H, /* this includes XMM1H to XMM7H */
662 CV_AMD64_MXCSR = CV_REG_MXCSR,
663 CV_AMD64_EDXEAX = CV_REG_EDXEAX,
664 CV_AMD64_EMM0L = CV_REG_EMM0L,
665 CV_AMD64_EMM0H = CV_REG_EMM0H,
666 CV_AMD64_MM00 = CV_REG_MM00,
667 CV_AMD64_MM01 = CV_REG_MM01,
668 CV_AMD64_MM10 = CV_REG_MM10,
669 CV_AMD64_MM11 = CV_REG_MM11,
670 CV_AMD64_MM20 = CV_REG_MM20,
671 CV_AMD64_MM21 = CV_REG_MM21,
672 CV_AMD64_MM30 = CV_REG_MM30,
673 CV_AMD64_MM31 = CV_REG_MM31,
674 CV_AMD64_MM40 = CV_REG_MM40,
675 CV_AMD64_MM41 = CV_REG_MM41,
676 CV_AMD64_MM50 = CV_REG_MM50,
677 CV_AMD64_MM51 = CV_REG_MM51,
678 CV_AMD64_MM60 = CV_REG_MM60,
679 CV_AMD64_MM61 = CV_REG_MM61,
680 CV_AMD64_MM70 = CV_REG_MM70,
681 CV_AMD64_MM71 = CV_REG_MM71,
683 CV_AMD64_XMM8 = 252, /* this includes XMM9 to XMM15 */
685 CV_AMD64_RAX = 328,
686 CV_AMD64_RBX = 329,
687 CV_AMD64_RCX = 330,
688 CV_AMD64_RDX = 331,
689 CV_AMD64_RSI = 332,
690 CV_AMD64_RDI = 333,
691 CV_AMD64_RBP = 334,
692 CV_AMD64_RSP = 335,
694 CV_AMD64_R8 = 336,
695 CV_AMD64_R9 = 337,
696 CV_AMD64_R10 = 338,
697 CV_AMD64_R11 = 339,
698 CV_AMD64_R12 = 340,
699 CV_AMD64_R13 = 341,
700 CV_AMD64_R14 = 342,
701 CV_AMD64_R15 = 343,
704 typedef enum
706 THUNK_ORDINAL_NOTYPE,
707 THUNK_ORDINAL_ADJUSTOR,
708 THUNK_ORDINAL_VCALL,
709 THUNK_ORDINAL_PCODE,
710 THUNK_ORDINAL_LOAD
711 } THUNK_ORDINAL;
713 typedef enum CV_call_e
715 CV_CALL_NEAR_C,
716 CV_CALL_FAR_C,
717 CV_CALL_NEAR_PASCAL,
718 CV_CALL_FAR_PASCAL,
719 CV_CALL_NEAR_FAST,
720 CV_CALL_FAR_FAST,
721 CV_CALL_SKIPPED,
722 CV_CALL_NEAR_STD,
723 CV_CALL_FAR_STD,
724 CV_CALL_NEAR_SYS,
725 CV_CALL_FAR_SYS,
726 CV_CALL_THISCALL,
727 CV_CALL_MIPSCALL,
728 CV_CALL_GENERIC,
729 CV_CALL_ALPHACALL,
730 CV_CALL_PPCCALL,
731 CV_CALL_SHCALL,
732 CV_CALL_ARMCALL,
733 CV_CALL_AM33CALL,
734 CV_CALL_TRICALL,
735 CV_CALL_SH5CALL,
736 CV_CALL_M32RCALL,
737 CV_CALL_CLRCALL,
738 CV_CALL_INLINE,
739 CV_CALL_NEAR_VECTOR,
740 CV_CALL_RESERVED,
741 } CV_call_e;
743 typedef enum CV_CFL_LANG
745 CV_CFL_C,
746 CV_CFL_CXX,
747 CV_CFL_FORTRAN,
748 CV_CFL_MASM,
749 CV_CFL_PASCAL,
750 CV_CFL_BASIC,
751 CV_CFL_COBOL,
752 CV_CFL_LINK,
753 CV_CFL_CVTRES,
754 CV_CFL_CVTPGD,
755 CV_CFL_CSHARP,
756 CV_CFL_VB,
757 CV_CFL_ILASM,
758 CV_CFL_JAVA,
759 CV_CFL_JSCRIPT,
760 CV_CFL_MSIL,
761 CV_CFL_HLSL,
762 } CV_CFL_LANG;
764 typedef enum CV_CPU_TYPE_e
766 CV_CFL_8080,
767 CV_CFL_8086,
768 CV_CFL_80286,
769 CV_CFL_80386,
770 CV_CFL_80486,
771 CV_CFL_PENTIUM,
772 CV_CFL_PENTIUMII,
773 CV_CFL_PENTIUMPRO = CV_CFL_PENTIUMII,
774 CV_CFL_PENTIUMIII,
775 CV_CFL_MIPS = 0x10,
776 CV_CFL_MIPSR4000 = CV_CFL_MIPS,
777 CV_CFL_MIPS16,
778 CV_CFL_MIPS32,
779 CV_CFL_MIPS64,
780 CV_CFL_MIPSI,
781 CV_CFL_MIPSII,
782 CV_CFL_MIPSIII,
783 CV_CFL_MIPSIV,
784 CV_CFL_MIPSV,
785 CV_CFL_M68000 = 0x20,
786 CV_CFL_M68010,
787 CV_CFL_M68020,
788 CV_CFL_M68030,
789 CV_CFL_M68040,
790 CV_CFL_ALPHA = 0x30,
791 CV_CFL_ALPHA_21064 = 0x30,
792 CV_CFL_ALPHA_21164,
793 CV_CFL_ALPHA_21164A,
794 CV_CFL_ALPHA_21264,
795 CV_CFL_ALPHA_21364,
796 CV_CFL_PPC601 = 0x40,
797 CV_CFL_PPC603,
798 CV_CFL_PPC604,
799 CV_CFL_PPC620,
800 CV_CFL_PPCFP,
801 CV_CFL_SH3 = 0x50,
802 CV_CFL_SH3E,
803 CV_CFL_SH3DSP,
804 CV_CFL_SH4,
805 CV_CFL_SHMEDIA,
806 CV_CFL_ARM3 = 0x60,
807 CV_CFL_ARM4,
808 CV_CFL_ARM4T,
809 CV_CFL_ARM5,
810 CV_CFL_ARM5T,
811 CV_CFL_ARM6,
812 CV_CFL_ARM_XMAC,
813 CV_CFL_ARM_WMMX,
814 CV_CFL_ARM7,
815 CV_CFL_OMNI = 0x70,
816 CV_CFL_IA64 = 0x80,
817 CV_CFL_IA64_1 = 0x80,
818 CV_CFL_IA64_2,
819 CV_CFL_CEE = 0x90,
820 CV_CFL_AM33 = 0xA0,
821 CV_CFL_M32R = 0xB0,
822 CV_CFL_TRICORE = 0xC0,
823 CV_CFL_X64 = 0xD0,
824 CV_CFL_AMD64 = CV_CFL_X64,
825 CV_CFL_EBC = 0xE0,
826 CV_CFL_THUMB = 0xF0,
827 CV_CFL_ARMNT = 0xF4,
828 CV_CFL_ARM64 = 0xF6,
829 CV_CFL_D3D11_SHADER = 0x100,
830 } CV_CPU_TYPE_e;