2 * File cvconst.h - MS debug information
4 * Copyright (C) 2004, Eric Pouech
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 /* information in this file is highly derivated from MSDN DIA information pages */
23 /* symbols & types enumeration */
29 SymTagCompilandDetails
,
46 SymTagFunctionArgType
,
90 /* where a SymTagData is */
106 /* kind of SymTagData */
121 /* values for registers (on different CPUs) */
124 /* those values are common to all supported CPUs (and CPU independant) */
125 CV_ALLREG_ERR
= 30000,
126 CV_ALLREG_TEB
= 30001,
127 CV_ALLREG_TIMER
= 30002,
128 CV_ALLREG_EFAD1
= 30003,
129 CV_ALLREG_EFAD2
= 30004,
130 CV_ALLREG_EFAD3
= 30005,
131 CV_ALLREG_VFRAME
= 30006,
132 CV_ALLREG_HANDLE
= 30007,
133 CV_ALLREG_PARAMS
= 30008,
134 CV_ALLREG_LOCALS
= 30009,
177 CV_REG_PCDR3
= 43, /* this includes PCDR4 to PCDR7 */
178 CV_REG_CR0
= 80, /* this includes CR1 to CR4 */
179 CV_REG_DR0
= 90, /* this includes DR1 to DR7 */
189 CV_REG_PSEUDO1
= 116, /* this includes Pseudo02 to Pseuso09 */
190 CV_REG_ST0
= 128, /* this includes ST1 to ST7 */
201 CV_REG_MM0
= 146, /* this includes MM1 to MM7 */
202 CV_REG_XMM0
= 154, /* this includes XMM1 to XMM7 */
204 CV_REG_XMM0L
= 194, /* this includes XMM1L to XMM7L */
205 CV_REG_XMM0H
= 202, /* this includes XMM1H to XMM7H */
227 /* Motorola 68K CPU */
228 CV_R68_D0
= 0, /* this includes D1 to D7 too */
229 CV_R68_A0
= 8, /* this includes A1 to A7 too */
244 CV_R68_FP0
= 32, /* this includes FP1 to FP7 */
245 CV_R68_MMUSR030
= 41,
264 CV_R68_BAD0
= 64, /* this includes BAD1 to BAD7 */
265 CV_R68_BAC0
= 72, /* this includes BAC1 to BAC7 */
268 CV_M4_NOREG
= CV_REG_NONE
,
273 CV_M4_IntA0
= 14, /* this includes IntA1 to IntA3 */
274 CV_M4_IntT0
= 18, /* this includes IntT1 to IntT7 */
275 CV_M4_IntS0
= 26, /* this includes IntS1 to IntS7 */
288 CV_M4_FltF0
= 60, /* this includes FltF1 to Flt31 */
292 CV_ALPHA_NOREG
= CV_REG_NONE
,
293 CV_ALPHA_FltF0
= 10, /* this includes FltF1 to FltF31 */
295 CV_ALPHA_IntT0
= 43, /* this includes T1 to T7 */
296 CV_ALPHA_IntS0
= 51, /* this includes S1 to S5 */
298 CV_ALPHA_IntA0
= 58, /* this includes A1 to A5 */
301 CV_ALPHA_IntT10
= 66,
302 CV_ALPHA_IntT11
= 67,
304 CV_ALPHA_IntT12
= 69,
308 CV_ALPHA_IntZERO
= 73,
312 CV_ALPHA_FltFsr
= 77,
313 CV_ALPHA_SoftFpcr
= 78,
315 /* Motorola & IBM PowerPC CPU */
316 CV_PPC_GPR0
= 1, /* this includes GPR1 to GPR31 */
318 CV_PPC_CR0
= 34, /* this includes CR1 to CR7 */
319 CV_PPC_FPR0
= 42, /* this includes FPR1 to FPR31 */
323 CV_PPC_SR0
= 76, /* this includes SR1 to SR15 */
324 /* some PPC registers missing */
326 /* Hitachi SH3 CPU */
327 CV_SH3_NOREG
= CV_REG_NONE
,
328 CV_SH3_IntR0
= 10, /* this include R1 to R13 */
350 CV_SH_FpR0
= 80, /* this includes FpR1 to FpR15 */
351 CV_SH_XFpR0
= 96, /* this includes XFpR1 to XXFpR15 */
354 CV_ARM_NOREG
= CV_REG_NONE
,
355 CV_ARM_R0
= 10, /* this includes R1 to R12 */
362 CV_IA64_NOREG
= CV_REG_NONE
,
363 CV_IA64_Br0
= 512, /* this includes Br1 to Br7 */
364 CV_IA64_P0
= 704, /* this includes P1 to P63 */
366 CV_IA64_IntH0
= 832, /* this includes H1 to H15 */
368 CV_IA64_Umask
= 1017,
372 CV_IA64_Nats2
= 1021,
373 CV_IA64_Nats3
= 1022,
374 CV_IA64_IntR0
= 1024, /* this includes R1 to R127 */
375 CV_IA64_FltF0
= 2048, /* this includes FltF1 to FltF127 */
376 /* some IA64 registers missing */
379 CV_TRI_NOREG
= CV_REG_NONE
,
380 CV_TRI_D0
= 10, /* includes D1 to D15 */
381 CV_TRI_A0
= 26, /* includes A1 to A15 */
398 /* some TriCode registers missing */
400 /* AM33 (and the likes) CPU */
401 CV_AM33_NOREG
= CV_REG_NONE
,
402 CV_AM33_E0
= 10, /* this includes E1 to E7 */
403 CV_AM33_A0
= 20, /* this includes A1 to A3 */
404 CV_AM33_D0
= 30, /* this includes D1 to D3 */
405 CV_AM33_FS0
= 40, /* this includes FS1 to FS31 */
407 /* Mitsubishi M32R CPU */
408 CV_M32R_NOREG
= CV_REG_NONE
,
409 CV_M32R_R0
= 10, /* this includes R1 to R11 */
427 THUNK_ORDINAL_NOTYPE
,
428 THUNK_ORDINAL_ADJUSTOR
,
434 typedef enum CV_call_e