wsdapi: Implement writing of XML elements.
[wine.git] / include / cvconst.h
blob80b8e440edc6bd19af2c733f3435121524f4521b
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 SymTagMax
61 enum BasicType
63 btNoType = 0,
64 btVoid = 1,
65 btChar = 2,
66 btWChar = 3,
67 btInt = 6,
68 btUInt = 7,
69 btFloat = 8,
70 btBCD = 9,
71 btBool = 10,
72 btLong = 13,
73 btULong = 14,
74 btCurrency = 25,
75 btDate = 26,
76 btVariant = 27,
77 btComplex = 28,
78 btBit = 29,
79 btBSTR = 30,
80 btHresult = 31,
81 btChar16 = 32,
82 btChar32 = 33
85 /* kind of UDT */
86 enum UdtKind
88 UdtStruct,
89 UdtClass,
90 UdtUnion
93 /* where a SymTagData is */
94 enum LocationType
96 LocIsNull,
97 LocIsStatic,
98 LocIsTLS,
99 LocIsRegRel,
100 LocIsThisRel,
101 LocIsEnregistered,
102 LocIsBitField,
103 LocIsSlot,
104 LocIsIlRel,
105 LocInMetaData,
106 LocIsConstant
109 /* kind of SymTagData */
110 enum DataKind
112 DataIsUnknown,
113 DataIsLocal,
114 DataIsStaticLocal,
115 DataIsParam,
116 DataIsObjectPtr,
117 DataIsFileStatic,
118 DataIsGlobal,
119 DataIsMember,
120 DataIsStaticMember,
121 DataIsConstant
124 /* values for registers (on different CPUs) */
125 enum CV_HREG_e
127 /* those values are common to all supported CPUs (and CPU independent) */
128 CV_ALLREG_ERR = 30000,
129 CV_ALLREG_TEB = 30001,
130 CV_ALLREG_TIMER = 30002,
131 CV_ALLREG_EFAD1 = 30003,
132 CV_ALLREG_EFAD2 = 30004,
133 CV_ALLREG_EFAD3 = 30005,
134 CV_ALLREG_VFRAME = 30006,
135 CV_ALLREG_HANDLE = 30007,
136 CV_ALLREG_PARAMS = 30008,
137 CV_ALLREG_LOCALS = 30009,
138 CV_ALLREG_TID = 30010,
139 CV_ALLREG_ENV = 30011,
140 CV_ALLREG_CMDLN = 30012,
142 /* Intel x86 CPU */
143 CV_REG_NONE = 0,
144 CV_REG_AL = 1,
145 CV_REG_CL = 2,
146 CV_REG_DL = 3,
147 CV_REG_BL = 4,
148 CV_REG_AH = 5,
149 CV_REG_CH = 6,
150 CV_REG_DH = 7,
151 CV_REG_BH = 8,
152 CV_REG_AX = 9,
153 CV_REG_CX = 10,
154 CV_REG_DX = 11,
155 CV_REG_BX = 12,
156 CV_REG_SP = 13,
157 CV_REG_BP = 14,
158 CV_REG_SI = 15,
159 CV_REG_DI = 16,
160 CV_REG_EAX = 17,
161 CV_REG_ECX = 18,
162 CV_REG_EDX = 19,
163 CV_REG_EBX = 20,
164 CV_REG_ESP = 21,
165 CV_REG_EBP = 22,
166 CV_REG_ESI = 23,
167 CV_REG_EDI = 24,
168 CV_REG_ES = 25,
169 CV_REG_CS = 26,
170 CV_REG_SS = 27,
171 CV_REG_DS = 28,
172 CV_REG_FS = 29,
173 CV_REG_GS = 30,
174 CV_REG_IP = 31,
175 CV_REG_FLAGS = 32,
176 CV_REG_EIP = 33,
177 CV_REG_EFLAGS = 34,
179 /* <pcode> */
180 CV_REG_TEMP = 40,
181 CV_REG_TEMPH = 41,
182 CV_REG_QUOTE = 42,
183 CV_REG_PCDR3 = 43, /* this includes PCDR4 to PCDR7 */
184 CV_REG_CR0 = 80, /* this includes CR1 to CR4 */
185 CV_REG_DR0 = 90, /* this includes DR1 to DR7 */
186 /* </pcode> */
188 CV_REG_GDTR = 110,
189 CV_REG_GDTL = 111,
190 CV_REG_IDTR = 112,
191 CV_REG_IDTL = 113,
192 CV_REG_LDTR = 114,
193 CV_REG_TR = 115,
195 CV_REG_PSEUDO1 = 116, /* this includes Pseudo02 to Pseudo09 */
196 CV_REG_ST0 = 128, /* this includes ST1 to ST7 */
197 CV_REG_CTRL = 136,
198 CV_REG_STAT = 137,
199 CV_REG_TAG = 138,
200 CV_REG_FPIP = 139,
201 CV_REG_FPCS = 140,
202 CV_REG_FPDO = 141,
203 CV_REG_FPDS = 142,
204 CV_REG_ISEM = 143,
205 CV_REG_FPEIP = 144,
206 CV_REG_FPEDO = 145,
207 CV_REG_MM0 = 146, /* this includes MM1 to MM7 */
208 CV_REG_XMM0 = 154, /* this includes XMM1 to XMM7 */
209 CV_REG_XMM00 = 162,
210 CV_REG_XMM0L = 194, /* this includes XMM1L to XMM7L */
211 CV_REG_XMM0H = 202, /* this includes XMM1H to XMM7H */
212 CV_REG_MXCSR = 211,
213 CV_REG_EDXEAX = 212,
214 CV_REG_EMM0L = 220,
215 CV_REG_EMM0H = 228,
216 CV_REG_MM00 = 236,
217 CV_REG_MM01 = 237,
218 CV_REG_MM10 = 238,
219 CV_REG_MM11 = 239,
220 CV_REG_MM20 = 240,
221 CV_REG_MM21 = 241,
222 CV_REG_MM30 = 242,
223 CV_REG_MM31 = 243,
224 CV_REG_MM40 = 244,
225 CV_REG_MM41 = 245,
226 CV_REG_MM50 = 246,
227 CV_REG_MM51 = 247,
228 CV_REG_MM60 = 248,
229 CV_REG_MM61 = 249,
230 CV_REG_MM70 = 250,
231 CV_REG_MM71 = 251,
233 CV_REG_YMM0 = 252, /* this includes YMM1 to YMM7 */
234 CV_REG_YMM0H = 260, /* this includes YMM1H to YMM7H */
235 CV_REG_YMM0I0 = 268, /* this includes YMM0I1 to YMM0I3 */
236 CV_REG_YMM1I0 = 272, /* this includes YMM1I1 to YMM1I3 */
237 CV_REG_YMM2I0 = 276, /* this includes YMM2I1 to YMM2I3 */
238 CV_REG_YMM3I0 = 280, /* this includes YMM3I1 to YMM3I3 */
239 CV_REG_YMM4I0 = 284, /* this includes YMM4I1 to YMM4I3 */
240 CV_REG_YMM5I0 = 288, /* this includes YMM5I1 to YMM5I3 */
241 CV_REG_YMM6I0 = 292, /* this includes YMM6I1 to YMM6I3 */
242 CV_REG_YMM7I0 = 296, /* this includes YMM7I1 to YMM7I3 */
243 CV_REG_YMM0F0 = 300, /* this includes YMM0F1 to YMM0F7 */
244 CV_REG_YMM1F0 = 308, /* this includes YMM1F1 to YMM1F7 */
245 CV_REG_YMM2F0 = 316, /* this includes YMM2F1 to YMM2F7 */
246 CV_REG_YMM3F0 = 324, /* this includes YMM3F1 to YMM3F7 */
247 CV_REG_YMM4F0 = 332, /* this includes YMM4F1 to YMM4F7 */
248 CV_REG_YMM5F0 = 340, /* this includes YMM5F1 to YMM5F7 */
249 CV_REG_YMM6F0 = 348, /* this includes YMM6F1 to YMM6F7 */
250 CV_REG_YMM7F0 = 356, /* this includes YMM7F1 to YMM7F7 */
251 CV_REG_YMM0D0 = 364, /* this includes YMM0D1 to YMM0D3 */
252 CV_REG_YMM1D0 = 368, /* this includes YMM1D1 to YMM1D3 */
253 CV_REG_YMM2D0 = 372, /* this includes YMM2D1 to YMM2D3 */
254 CV_REG_YMM3D0 = 376, /* this includes YMM3D1 to YMM3D3 */
255 CV_REG_YMM4D0 = 380, /* this includes YMM4D1 to YMM4D3 */
256 CV_REG_YMM5D0 = 384, /* this includes YMM5D1 to YMM5D3 */
257 CV_REG_YMM6D0 = 388, /* this includes YMM6D1 to YMM6D3 */
258 CV_REG_YMM7D0 = 392, /* this includes YMM7D1 to YMM7D3 */
260 /* Motorola 68K CPU */
261 CV_R68_D0 = 0, /* this includes D1 to D7 too */
262 CV_R68_A0 = 8, /* this includes A1 to A7 too */
263 CV_R68_CCR = 16,
264 CV_R68_SR = 17,
265 CV_R68_USP = 18,
266 CV_R68_MSP = 19,
267 CV_R68_SFC = 20,
268 CV_R68_DFC = 21,
269 CV_R68_CACR = 22,
270 CV_R68_VBR = 23,
271 CV_R68_CAAR = 24,
272 CV_R68_ISP = 25,
273 CV_R68_PC = 26,
274 CV_R68_FPCR = 28,
275 CV_R68_FPSR = 29,
276 CV_R68_FPIAR = 30,
277 CV_R68_FP0 = 32, /* this includes FP1 to FP7 */
278 CV_R68_MMUSR030 = 41,
279 CV_R68_MMUSR = 42,
280 CV_R68_URP = 43,
281 CV_R68_DTT0 = 44,
282 CV_R68_DTT1 = 45,
283 CV_R68_ITT0 = 46,
284 CV_R68_ITT1 = 47,
285 CV_R68_PSR = 51,
286 CV_R68_PCSR = 52,
287 CV_R68_VAL = 53,
288 CV_R68_CRP = 54,
289 CV_R68_SRP = 55,
290 CV_R68_DRP = 56,
291 CV_R68_TC = 57,
292 CV_R68_AC = 58,
293 CV_R68_SCC = 59,
294 CV_R68_CAL = 60,
295 CV_R68_TT0 = 61,
296 CV_R68_TT1 = 62,
297 CV_R68_BAD0 = 64, /* this includes BAD1 to BAD7 */
298 CV_R68_BAC0 = 72, /* this includes BAC1 to BAC7 */
300 /* MIPS 4000 CPU */
301 CV_M4_NOREG = CV_REG_NONE,
302 CV_M4_IntZERO = 10,
303 CV_M4_IntAT = 11,
304 CV_M4_IntV0 = 12,
305 CV_M4_IntV1 = 13,
306 CV_M4_IntA0 = 14, /* this includes IntA1 to IntA3 */
307 CV_M4_IntT0 = 18, /* this includes IntT1 to IntT7 */
308 CV_M4_IntS0 = 26, /* this includes IntS1 to IntS7 */
309 CV_M4_IntT8 = 34,
310 CV_M4_IntT9 = 35,
311 CV_M4_IntKT0 = 36,
312 CV_M4_IntKT1 = 37,
313 CV_M4_IntGP = 38,
314 CV_M4_IntSP = 39,
315 CV_M4_IntS8 = 40,
316 CV_M4_IntRA = 41,
317 CV_M4_IntLO = 42,
318 CV_M4_IntHI = 43,
319 CV_M4_Fir = 50,
320 CV_M4_Psr = 51,
321 CV_M4_FltF0 = 60, /* this includes FltF1 to Flt31 */
322 CV_M4_FltFsr = 92,
324 /* Alpha AXP CPU */
325 CV_ALPHA_NOREG = CV_REG_NONE,
326 CV_ALPHA_FltF0 = 10, /* this includes FltF1 to FltF31 */
327 CV_ALPHA_IntV0 = 42,
328 CV_ALPHA_IntT0 = 43, /* this includes T1 to T7 */
329 CV_ALPHA_IntS0 = 51, /* this includes S1 to S5 */
330 CV_ALPHA_IntFP = 57,
331 CV_ALPHA_IntA0 = 58, /* this includes A1 to A5 */
332 CV_ALPHA_IntT8 = 64,
333 CV_ALPHA_IntT9 = 65,
334 CV_ALPHA_IntT10 = 66,
335 CV_ALPHA_IntT11 = 67,
336 CV_ALPHA_IntRA = 68,
337 CV_ALPHA_IntT12 = 69,
338 CV_ALPHA_IntAT = 70,
339 CV_ALPHA_IntGP = 71,
340 CV_ALPHA_IntSP = 72,
341 CV_ALPHA_IntZERO = 73,
342 CV_ALPHA_Fpcr = 74,
343 CV_ALPHA_Fir = 75,
344 CV_ALPHA_Psr = 76,
345 CV_ALPHA_FltFsr = 77,
346 CV_ALPHA_SoftFpcr = 78,
348 /* Motorola & IBM PowerPC CPU */
349 CV_PPC_GPR0 = 1, /* this includes GPR1 to GPR31 */
350 CV_PPC_CR = 33,
351 CV_PPC_CR0 = 34, /* this includes CR1 to CR7 */
352 CV_PPC_FPR0 = 42, /* this includes FPR1 to FPR31 */
354 CV_PPC_FPSCR = 74,
355 CV_PPC_MSR = 75,
356 CV_PPC_SR0 = 76, /* this includes SR1 to SR15 */
357 CV_PPC_PC = 99,
358 CV_PPC_MQ = 100,
359 CV_PPC_XER = 101,
360 CV_PPC_RTCU = 104,
361 CV_PPC_RTCL = 105,
362 CV_PPC_LR = 108,
363 CV_PPC_CTR = 109,
364 CV_PPC_COMPARE = 110,
365 CV_PPC_COUNT = 111,
366 CV_PPC_DSISR = 118,
367 CV_PPC_DAR = 119,
368 CV_PPC_DEC = 122,
369 CV_PPC_SDR1 = 125,
370 CV_PPC_SRR0 = 126,
371 CV_PPC_SRR1 = 127,
372 CV_PPC_SPRG0 = 372, /* this includes SPRG1 to SPRG3 */
373 CV_PPC_ASR = 280,
374 CV_PPC_EAR = 382,
375 CV_PPC_PVR = 287,
376 CV_PPC_BAT0U = 628,
377 CV_PPC_BAT0L = 629,
378 CV_PPC_BAT1U = 630,
379 CV_PPC_BAT1L = 631,
380 CV_PPC_BAT2U = 632,
381 CV_PPC_BAT2L = 633,
382 CV_PPC_BAT3U = 634,
383 CV_PPC_BAT3L = 635,
384 CV_PPC_DBAT0U = 636,
385 CV_PPC_DBAT0L = 637,
386 CV_PPC_DBAT1U = 638,
387 CV_PPC_DBAT1L = 639,
388 CV_PPC_DBAT2U = 640,
389 CV_PPC_DBAT2L = 641,
390 CV_PPC_DBAT3U = 642,
391 CV_PPC_DBAT3L = 643,
392 CV_PPC_PMR0 = 1044, /* this includes PMR1 to PMR15 */
393 CV_PPC_DMISS = 1076,
394 CV_PPC_DCMP = 1077,
395 CV_PPC_HASH1 = 1078,
396 CV_PPC_HASH2 = 1079,
397 CV_PPC_IMISS = 1080,
398 CV_PPC_ICMP = 1081,
399 CV_PPC_RPA = 1082,
400 CV_PPC_HID0 = 1108, /* this includes HID1 to HID15 */
402 /* Java */
403 CV_JAVA_PC = 1,
405 /* Hitachi SH3 CPU */
406 CV_SH3_NOREG = CV_REG_NONE,
407 CV_SH3_IntR0 = 10, /* this include R1 to R13 */
408 CV_SH3_IntFp = 24,
409 CV_SH3_IntSp = 25,
410 CV_SH3_Gbr = 38,
411 CV_SH3_Pr = 39,
412 CV_SH3_Mach = 40,
413 CV_SH3_Macl = 41,
414 CV_SH3_Pc = 50,
415 CV_SH3_Sr = 51,
416 CV_SH3_BarA = 60,
417 CV_SH3_BasrA = 61,
418 CV_SH3_BamrA = 62,
419 CV_SH3_BbrA = 63,
420 CV_SH3_BarB = 64,
421 CV_SH3_BasrB = 65,
422 CV_SH3_BamrB = 66,
423 CV_SH3_BbrB = 67,
424 CV_SH3_BdrB = 68,
425 CV_SH3_BdmrB = 69,
426 CV_SH3_Brcr = 70,
427 CV_SH_Fpscr = 75,
428 CV_SH_Fpul = 76,
429 CV_SH_FpR0 = 80, /* this includes FpR1 to FpR15 */
430 CV_SH_XFpR0 = 96, /* this includes XFpR1 to XXFpR15 */
432 /* ARM CPU */
433 CV_ARM_NOREG = CV_REG_NONE,
434 CV_ARM_R0 = 10, /* this includes R1 to R12 */
435 CV_ARM_SP = 23,
436 CV_ARM_LR = 24,
437 CV_ARM_PC = 25,
438 CV_ARM_CPSR = 26,
439 CV_ARM_ACC0 = 27,
440 CV_ARM_FPSCR = 40,
441 CV_ARM_FPEXC = 41,
442 CV_ARM_FS0 = 50, /* this includes FS1 to FS31 */
443 CV_ARM_FPEXTRA0 = 90, /* this includes FPEXTRA1 to FPEXTRA7 */
444 CV_ARM_WR0 = 128, /* this includes WR1 to WR15 */
445 CV_ARM_WCID = 144,
446 CV_ARM_WCON = 145,
447 CV_ARM_WCSSF = 146,
448 CV_ARM_WCASF = 147,
449 CV_ARM_WC4 = 148,
450 CV_ARM_WC5 = 149,
451 CV_ARM_WC6 = 150,
452 CV_ARM_WC7 = 151,
453 CV_ARM_WCGR0 = 152, /* this includes WCGR1 to WCGR3 */
454 CV_ARM_WC12 = 156,
455 CV_ARM_WC13 = 157,
456 CV_ARM_WC14 = 158,
457 CV_ARM_WC15 = 159,
458 CV_ARM_FS32 = 200, /* this includes FS33 to FS63 */
459 CV_ARM_ND0 = 300, /* this includes ND1 to ND31 */
460 CV_ARM_NQ0 = 400, /* this includes NQ1 to NQ15 */
462 /* ARM64 CPU */
463 CV_ARM64_NOREG = CV_REG_NONE,
464 CV_ARM64_W0 = 10, /* this includes W0 to W30 */
465 CV_ARM64_WZR = 41,
466 CV_ARM64_PC = 42, /* Wine extension */
467 CV_ARM64_PSTATE = 43, /* Wine extension */
468 CV_ARM64_X0 = 50, /* this includes X0 to X28 */
469 CV_ARM64_IP0 = 66, /* Same as X16 */
470 CV_ARM64_IP1 = 67, /* Same as X17 */
471 CV_ARM64_FP = 79,
472 CV_ARM64_LR = 80,
473 CV_ARM64_SP = 81,
474 CV_ARM64_ZR = 82,
475 CV_ARM64_NZCV = 90,
476 CV_ARM64_S0 = 100, /* this includes S0 to S31 */
477 CV_ARM64_D0 = 140, /* this includes D0 to D31 */
478 CV_ARM64_Q0 = 180, /* this includes Q0 to Q31 */
479 CV_ARM64_FPSR = 220,
481 /* Intel IA64 CPU */
482 CV_IA64_NOREG = CV_REG_NONE,
483 CV_IA64_Br0 = 512, /* this includes Br1 to Br7 */
484 CV_IA64_P0 = 704, /* this includes P1 to P63 */
485 CV_IA64_Preds = 768,
486 CV_IA64_IntH0 = 832, /* this includes H1 to H15 */
487 CV_IA64_Ip = 1016,
488 CV_IA64_Umask = 1017,
489 CV_IA64_Cfm = 1018,
490 CV_IA64_Psr = 1019,
491 CV_IA64_Nats = 1020,
492 CV_IA64_Nats2 = 1021,
493 CV_IA64_Nats3 = 1022,
494 CV_IA64_IntR0 = 1024, /* this includes R1 to R127 */
495 CV_IA64_FltF0 = 2048, /* this includes FltF1 to FltF127 */
496 /* some IA64 registers missing */
498 /* TriCore CPU */
499 CV_TRI_NOREG = CV_REG_NONE,
500 CV_TRI_D0 = 10, /* includes D1 to D15 */
501 CV_TRI_A0 = 26, /* includes A1 to A15 */
502 CV_TRI_E0 = 42,
503 CV_TRI_E2 = 43,
504 CV_TRI_E4 = 44,
505 CV_TRI_E6 = 45,
506 CV_TRI_E8 = 46,
507 CV_TRI_E10 = 47,
508 CV_TRI_E12 = 48,
509 CV_TRI_E14 = 49,
510 CV_TRI_EA0 = 50,
511 CV_TRI_EA2 = 51,
512 CV_TRI_EA4 = 52,
513 CV_TRI_EA6 = 53,
514 CV_TRI_EA8 = 54,
515 CV_TRI_EA10 = 55,
516 CV_TRI_EA12 = 56,
517 CV_TRI_EA14 = 57,
518 CV_TRI_PSW = 58,
519 CV_TRI_PCXI = 59,
520 CV_TRI_PC = 60,
521 CV_TRI_FCX = 61,
522 CV_TRI_LCX = 62,
523 CV_TRI_ISP = 63,
524 CV_TRI_ICR = 64,
525 CV_TRI_BIV = 65,
526 CV_TRI_BTV = 66,
527 CV_TRI_SYSCON = 67,
528 CV_TRI_DPRx_0 = 68, /* includes DPRx_1 to DPRx_3 */
529 CV_TRI_CPRx_0 = 68, /* includes CPRx_1 to CPRx_3 */
530 CV_TRI_DPMx_0 = 68, /* includes DPMx_1 to DPMx_3 */
531 CV_TRI_CPMx_0 = 68, /* includes CPMx_1 to CPMx_3 */
532 CV_TRI_DBGSSR = 72,
533 CV_TRI_EXEVT = 73,
534 CV_TRI_SWEVT = 74,
535 CV_TRI_CREVT = 75,
536 CV_TRI_TRnEVT = 76,
537 CV_TRI_MMUCON = 77,
538 CV_TRI_ASI = 78,
539 CV_TRI_TVA = 79,
540 CV_TRI_TPA = 80,
541 CV_TRI_TPX = 81,
542 CV_TRI_TFA = 82,
544 /* AM33 (and the likes) CPU */
545 CV_AM33_NOREG = CV_REG_NONE,
546 CV_AM33_E0 = 10, /* this includes E1 to E7 */
547 CV_AM33_A0 = 20, /* this includes A1 to A3 */
548 CV_AM33_D0 = 30, /* this includes D1 to D3 */
549 CV_AM33_FS0 = 40, /* this includes FS1 to FS31 */
550 CV_AM33_SP = 80,
551 CV_AM33_PC = 81,
552 CV_AM33_MDR = 82,
553 CV_AM33_MDRQ = 83,
554 CV_AM33_MCRH = 84,
555 CV_AM33_MCRL = 85,
556 CV_AM33_MCVF = 86,
557 CV_AM33_EPSW = 87,
558 CV_AM33_FPCR = 88,
559 CV_AM33_LIR = 89,
560 CV_AM33_LAR = 90,
562 /* Mitsubishi M32R CPU */
563 CV_M32R_NOREG = CV_REG_NONE,
564 CV_M32R_R0 = 10, /* this includes R1 to R11 */
565 CV_M32R_R12 = 22,
566 CV_M32R_R13 = 23,
567 CV_M32R_R14 = 24,
568 CV_M32R_R15 = 25,
569 CV_M32R_PSW = 26,
570 CV_M32R_CBR = 27,
571 CV_M32R_SPI = 28,
572 CV_M32R_SPU = 29,
573 CV_M32R_SPO = 30,
574 CV_M32R_BPC = 31,
575 CV_M32R_ACHI = 32,
576 CV_M32R_ACLO = 33,
577 CV_M32R_PC = 34,
579 /* AMD/Intel x86_64 CPU */
580 CV_AMD64_NONE = CV_REG_NONE,
581 CV_AMD64_AL = CV_REG_AL,
582 CV_AMD64_CL = CV_REG_CL,
583 CV_AMD64_DL = CV_REG_DL,
584 CV_AMD64_BL = CV_REG_BL,
585 CV_AMD64_AH = CV_REG_AH,
586 CV_AMD64_CH = CV_REG_CH,
587 CV_AMD64_DH = CV_REG_DH,
588 CV_AMD64_BH = CV_REG_BH,
589 CV_AMD64_AX = CV_REG_AX,
590 CV_AMD64_CX = CV_REG_CX,
591 CV_AMD64_DX = CV_REG_DX,
592 CV_AMD64_BX = CV_REG_BX,
593 CV_AMD64_SP = CV_REG_SP,
594 CV_AMD64_BP = CV_REG_BP,
595 CV_AMD64_SI = CV_REG_SI,
596 CV_AMD64_DI = CV_REG_DI,
597 CV_AMD64_EAX = CV_REG_EAX,
598 CV_AMD64_ECX = CV_REG_ECX,
599 CV_AMD64_EDX = CV_REG_EDX,
600 CV_AMD64_EBX = CV_REG_EBX,
601 CV_AMD64_ESP = CV_REG_ESP,
602 CV_AMD64_EBP = CV_REG_EBP,
603 CV_AMD64_ESI = CV_REG_ESI,
604 CV_AMD64_EDI = CV_REG_EDI,
605 CV_AMD64_ES = CV_REG_ES,
606 CV_AMD64_CS = CV_REG_CS,
607 CV_AMD64_SS = CV_REG_SS,
608 CV_AMD64_DS = CV_REG_DS,
609 CV_AMD64_FS = CV_REG_FS,
610 CV_AMD64_GS = CV_REG_GS,
611 CV_AMD64_FLAGS = CV_REG_FLAGS,
612 CV_AMD64_RIP = CV_REG_EIP,
613 CV_AMD64_EFLAGS = CV_REG_EFLAGS,
615 /* <pcode> */
616 CV_AMD64_TEMP = CV_REG_TEMP,
617 CV_AMD64_TEMPH = CV_REG_TEMPH,
618 CV_AMD64_QUOTE = CV_REG_QUOTE,
619 CV_AMD64_PCDR3 = CV_REG_PCDR3, /* this includes PCDR4 to PCDR7 */
620 CV_AMD64_CR0 = CV_REG_CR0, /* this includes CR1 to CR4 */
621 CV_AMD64_DR0 = CV_REG_DR0, /* this includes DR1 to DR7 */
622 /* </pcode> */
624 CV_AMD64_GDTR = CV_REG_GDTR,
625 CV_AMD64_GDTL = CV_REG_GDTL,
626 CV_AMD64_IDTR = CV_REG_IDTR,
627 CV_AMD64_IDTL = CV_REG_IDTL,
628 CV_AMD64_LDTR = CV_REG_LDTR,
629 CV_AMD64_TR = CV_REG_TR,
631 CV_AMD64_PSEUDO1 = CV_REG_PSEUDO1, /* this includes Pseudo02 to Pseudo09 */
632 CV_AMD64_ST0 = CV_REG_ST0, /* this includes ST1 to ST7 */
633 CV_AMD64_CTRL = CV_REG_CTRL,
634 CV_AMD64_STAT = CV_REG_STAT,
635 CV_AMD64_TAG = CV_REG_TAG,
636 CV_AMD64_FPIP = CV_REG_FPIP,
637 CV_AMD64_FPCS = CV_REG_FPCS,
638 CV_AMD64_FPDO = CV_REG_FPDO,
639 CV_AMD64_FPDS = CV_REG_FPDS,
640 CV_AMD64_ISEM = CV_REG_ISEM,
641 CV_AMD64_FPEIP = CV_REG_FPEIP,
642 CV_AMD64_FPEDO = CV_REG_FPEDO,
643 CV_AMD64_MM0 = CV_REG_MM0, /* this includes MM1 to MM7 */
644 CV_AMD64_XMM0 = CV_REG_XMM0, /* this includes XMM1 to XMM7 */
645 CV_AMD64_XMM00 = CV_REG_XMM00,
646 CV_AMD64_XMM0L = CV_REG_XMM0L, /* this includes XMM1L to XMM7L */
647 CV_AMD64_XMM0H = CV_REG_XMM0H, /* this includes XMM1H to XMM7H */
648 CV_AMD64_MXCSR = CV_REG_MXCSR,
649 CV_AMD64_EDXEAX = CV_REG_EDXEAX,
650 CV_AMD64_EMM0L = CV_REG_EMM0L,
651 CV_AMD64_EMM0H = CV_REG_EMM0H,
652 CV_AMD64_MM00 = CV_REG_MM00,
653 CV_AMD64_MM01 = CV_REG_MM01,
654 CV_AMD64_MM10 = CV_REG_MM10,
655 CV_AMD64_MM11 = CV_REG_MM11,
656 CV_AMD64_MM20 = CV_REG_MM20,
657 CV_AMD64_MM21 = CV_REG_MM21,
658 CV_AMD64_MM30 = CV_REG_MM30,
659 CV_AMD64_MM31 = CV_REG_MM31,
660 CV_AMD64_MM40 = CV_REG_MM40,
661 CV_AMD64_MM41 = CV_REG_MM41,
662 CV_AMD64_MM50 = CV_REG_MM50,
663 CV_AMD64_MM51 = CV_REG_MM51,
664 CV_AMD64_MM60 = CV_REG_MM60,
665 CV_AMD64_MM61 = CV_REG_MM61,
666 CV_AMD64_MM70 = CV_REG_MM70,
667 CV_AMD64_MM71 = CV_REG_MM71,
669 CV_AMD64_XMM8 = 252, /* this includes XMM9 to XMM15 */
671 CV_AMD64_RAX = 328,
672 CV_AMD64_RBX = 329,
673 CV_AMD64_RCX = 330,
674 CV_AMD64_RDX = 331,
675 CV_AMD64_RSI = 332,
676 CV_AMD64_RDI = 333,
677 CV_AMD64_RBP = 334,
678 CV_AMD64_RSP = 335,
680 CV_AMD64_R8 = 336,
681 CV_AMD64_R9 = 337,
682 CV_AMD64_R10 = 338,
683 CV_AMD64_R11 = 339,
684 CV_AMD64_R12 = 340,
685 CV_AMD64_R13 = 341,
686 CV_AMD64_R14 = 342,
687 CV_AMD64_R15 = 343,
690 typedef enum
692 THUNK_ORDINAL_NOTYPE,
693 THUNK_ORDINAL_ADJUSTOR,
694 THUNK_ORDINAL_VCALL,
695 THUNK_ORDINAL_PCODE,
696 THUNK_ORDINAL_LOAD
697 } THUNK_ORDINAL;
699 typedef enum CV_call_e
701 CV_CALL_NEAR_C,
702 CV_CALL_FAR_C,
703 CV_CALL_NEAR_PASCAL,
704 CV_CALL_FAR_PASCAL,
705 CV_CALL_NEAR_FAST,
706 CV_CALL_FAR_FAST,
707 CV_CALL_SKIPPED,
708 CV_CALL_NEAR_STD,
709 CV_CALL_FAR_STD,
710 CV_CALL_NEAR_SYS,
711 CV_CALL_FAR_SYS,
712 CV_CALL_THISCALL,
713 CV_CALL_MIPSCALL,
714 CV_CALL_GENERIC,
715 CV_CALL_ALPHACALL,
716 CV_CALL_PPCCALL,
717 CV_CALL_SHCALL,
718 CV_CALL_ARMCALL,
719 CV_CALL_AM33CALL,
720 CV_CALL_TRICALL,
721 CV_CALL_SH5CALL,
722 CV_CALL_M32RCALL,
723 CV_CALL_RESERVED,
724 } CV_call_e;