1 .equ CV_SIGNATURE_C13, 4
10 .equ LF_VTSHAPE, 0x000a
11 .equ LF_MODIFIER, 0x1001
12 .equ LF_POINTER, 0x1002
13 .equ LF_PROCEDURE, 0x1008
14 .equ LF_MFUNCTION, 0x1009
15 .equ LF_ARGLIST, 0x1201
16 .equ LF_FIELDLIST, 0x1203
17 .equ LF_BITFIELD, 0x1205
18 .equ LF_METHODLIST, 0x1206
19 .equ LF_BCLASS, 0x1400
20 .equ LF_VBCLASS, 0x1401
22 .equ LF_VFUNCTAB, 0x1409
23 .equ LF_ENUMERATE, 0x1502
25 .equ LF_STRUCTURE, 0x1505
28 .equ LF_MEMBER, 0x150d
29 .equ LF_STMEMBER, 0x150e
30 .equ LF_METHOD, 0x150f
31 .equ LF_NESTTYPE, 0x1510
32 .equ LF_ONEMETHOD, 0x1511
34 .equ LF_USHORT, 0x8002
37 .equ LF_UQUADWORD, 0x800a
39 .equ CV_PTR_NEAR32, 0xa
42 .section ".debug$T", "rn"
44 .long CV_SIGNATURE_C13
46 # Type 1000, const long
48 .short .mod2 - .mod1 - 2
54 # Type 1001, volatile unsigned long
56 .short .mod3 - .mod2 - 2
62 # Type 1002, const volatile int
64 .short .ptr1 - .mod3 - 2
67 .short 3 # const volatile
70 # Type 1003, const long * (64-bit pointer)
72 .short .ptr2 - .ptr1 - 2
75 .long (8 << 13) | CV_PTR_64
77 # Type 1004, volatile unsigned long * (32-bit pointer)
79 .short .arglist1 - .ptr2 - 2
82 .long (4 << 13) | CV_PTR_NEAR32
84 # Type 1005, arg list of types 1000, 1001, 1002
86 .short .proc1 - .arglist1 - 2
93 # Type 1006, procedure, return type 1001, arg list 1005
95 .short .arr1 - .proc1 - 2
98 .byte 0 # calling convention
100 .short 3 # no. parameters
103 # Type 1007, array[3] of const long *
105 .short .bitfield1 - .arr1 - 2
107 .long 0x1003 # element type
108 .long T_INT4 # index type
109 .short 24 # length in bytes
113 # Type 1008, bitfield of uint32_t, position 0, length 1
115 .short .bitfield2 - .bitfield1 - 2
123 # Type 1009, bitfield of uint32_t, position 1, length 31
125 .short .fieldlist1 - .bitfield2 - 2
133 # Type 100a, field list (1008 as num1, 1009 as num2)
135 .short .struct1 - .fieldlist1 - 2
150 # Type 100b, anonymous struct, field list 100a
152 .short .struct2 - .struct1 - 2
154 .short 2 # no. members
156 .long 0x100a # field list
157 .long 0 # type derived from
158 .long 0 # type of vshape table
160 .asciz "<unnamed-tag>"
162 # Type 100c, forward declaration of struct foo
164 .short .ptr3 - .struct2 - 2
166 .short 0 # no. members
167 .short 0x280 # property (has unique name, forward declaration)
169 .long 0 # type derived from
170 .long 0 # type of vshape table
173 .asciz "bar" # unique name
177 # Type 100d, pointer to 100c
179 .short .arglist2 - .ptr3 - 2
182 .long (8 << 13) | CV_PTR_64
184 # Type 100e, empty arg list
186 .short .mfunc1 - .arglist2 - 2
188 .long 0 # no. entries
190 # Type 100f, member function of 100c, return type 1001
192 .short .mfunc2 - .mfunc1 - 2
196 .long 0x100d # type of "this" pointer
197 .byte 0 # calling convention
199 .short 0 # no. parameters
200 .long 0x100e # arg list
201 .long 0 # "this" adjustment
203 # Type 1010, member function of 100c, return type 1001, arg list 1005
205 .short .methodlist1 - .mfunc2 - 2
209 .long 0x100d # type of "this" pointer
210 .byte 0 # calling convention
212 .short 3 # no. parameters
213 .long 0x1005 # arg list
214 .long 0 # "this" adjustment
216 # Type 1011, method list for both member functions 100f and 1010
218 .short .fieldlist2 - .methodlist1 - 2
220 .short 0 # attributes
223 .short 0 # attributes
227 # Type 1012, field list (uint32_t as num1)
229 .short .struct3 - .fieldlist2 - 2
239 .short 0 # method attribute
240 .long 0x100f # method type
244 .short 2 # no. overloads
245 .long 0x1011 # method list
248 # Type 1013, struct foo, field list 1012
250 .short .fieldlist3 - .struct3 - 2
252 .short 2 # no. members
253 .short 0x200 # property (has unique name)
254 .long 0x1012 # field list
255 .long 0 # type derived from
256 .long 0 # type of vshape table
259 .asciz "bar" # unique name
263 # Type 1014, field list (uint32_t as num1, char as num2)
265 .short .union1 - .fieldlist3 - 2
280 # Type 1015, anonymous union (field list 1014)
282 .short .union2 - .union1 - 2
284 .short 2 # no. members
288 .asciz "<unnamed-tag>"
290 # Type 1016, forward declaration of union baz
292 .short .union3 - .union2 - 2
294 .short 0 # no. members
295 .short 0x280 # property (has unique name, forward declaration)
303 # Type 1017, union baz (field list 1014)
305 .short .fieldlist4 - .union3 - 2
307 .short 2 # no. members
308 .short 0x200 # property (has unique name, forward declaration)
309 .long 0x1014 # field list
316 # Type 1018, field list for enum (red = 0, green = 1, blue = -1, yellow = 0x8000, purple = 0x100000000)
318 .short .enum1 - .fieldlist4 - 2
333 .long 0xffffffff # value
339 .short 0x8000 # value
345 .quad 0x100000000 # value
351 # Type 1019, forward reference to enum
353 .short .enum2 - .enum1 - 2
355 .short 0 # no. elements
356 .short 0x280 # property (has unique name, forward ref)
357 .long T_UQUAD # underlying type
363 # Type 101a, enum (field list 1018)
365 .short .fieldlist5 - .enum2 - 2
367 .short 5 # no. elements
368 .short 0x200 # property (has unique name)
369 .long T_UQUAD # underlying type
370 .long 0x1018 # field list
375 # Type 101b, field list referencing other field list 1018
377 .short .vtshape1 - .fieldlist5 - 2
383 # Type 101c, virtual function table shape
385 .short .ptr4 - .vtshape1 - 2
387 .short 1 # no. descriptors
388 .byte 0 # descriptor (CV_VTS_near)
391 # Type 101d, pointer to 101c
393 .short .fieldlist6 - .ptr4 - 2
396 .long (8 << 13) | CV_PTR_64
398 # Type 101e, fieldlist for enum
400 .short .enum3 - .fieldlist6 - 2
407 # Type 101f, nested enum
409 .short .fieldlist7 - .enum3 - 2
411 .short 1 # no. elements
412 .short 0x8 # property (is nested)
413 .long T_UINT4 # underlying type
414 .long 0x101e # field list
415 .asciz "quux::nested_enum"
419 # Type 1020, field list for struct quux
421 .short .struct4 - .fieldlist7 - 2
424 .short 0 # attributes
425 .long 0x1013 # base class
426 .short 4 # offset within class
431 .long 0x101d # pointer to vtshape
434 .long 0x1013 # type index of direct virtual base class
435 .long 0x101d # type index of virtual base pointer
436 .short 0 # virtual base pointer offset
437 .short 0 # virtual base offset from vbtable
440 .long 0x1001 # volatile unsigned long
441 .asciz "static_member"
446 .long 0x101f # enum type
449 # Type 1021, struct quux, field list 1020
451 .short .arr2 - .struct4 - 2
453 .short 1 # no. members
455 .long 0x1020 # field list
456 .long 0 # type derived from
457 .long 0 # type of vshape table
462 # Type 1022, array[60000] of char
464 .short .fieldlist8 - .arr2 - 2
466 .long T_CHAR # element type
467 .long T_INT4 # index type
469 .short 60000 # size in bytes
475 # Type 1023, field list for struct longstruct
477 .short .struct5 - .fieldlist8 - 2
488 .short 60000 # offset
496 .long 120000 # offset
499 # Type 1024, struct longstruct
501 .short .fieldlist9 - .struct5 - 2
503 .short 3 # no. members
505 .long 0x1023 # field list
506 .long 0 # type derived from
507 .long 0 # type of vshape table
510 .asciz "longstruct" # name
515 # Type 1025, field list for union longunion
517 .short .union4 - .fieldlist9 - 2
530 # Type 1026, union longunion (field list 1025)
532 .short .fieldlist10 - .union4 - 2
534 .short 2 # no. members
536 .long 0x1025 # field list
543 # Type 1027, field list with base class longstruct
545 .short .fieldlist11 - .fieldlist10 - 2
548 .short 0 # attributes
549 .long 0x1024 # base class
551 .long 120000 # offset within class
560 # Type 1028, field list with virtual base class longstruct
562 .short .types_end - .fieldlist11 - 2
565 .short 0 # attributes
566 .long 0x1024 # type index of direct virtual base class
567 .long 0 # type index of virtual base pointer
569 .short 60000 # virtual base pointer offset
571 .long 120000 # virtual base offset from vbtable