Files
ldc/backend/cv4.h
Alexey Prokhin caad8cde58 Squashed 'dmd2/' content from commit 10017d5
git-subtree-dir: dmd2
git-subtree-split: 10017d50eaaff4ecdc37a0153b6c37ea0b004c81
2012-04-05 11:10:48 +04:00

127 lines
3.3 KiB
C

//_ cv4.h
// Codeview 4 stuff
// See "Microsoft Symbol and Type OMF" document
#define OEM 0x42 // Digital Mars OEM number (picked at random)
// Symbol Indices
#define S_COMPILE 1
#define S_REGISTER 2
#define S_CONST 3
#define S_UDT 4
#define S_SSEARCH 5
#define S_END 6
#define S_SKIP 7
#define S_CVRESERVE 8
#define S_OBJNAME 9
#define S_ENDARG 0x0A
#define S_COBOLUDT 0x0B
#define S_MANYREG 0x0C
#define S_RETURN 0x0D
#define S_ENTRYTHIS 0x0E
#define S_TDBNAME 0x0F
#define S_BPREL16 0x100
#define S_LDATA16 0x101
#define S_GDATA16 0x102
#define S_PUB16 0x103
#define S_LPROC16 0x104
#define S_GPROC16 0x105
#define S_THUNK16 0x106
#define S_BLOCK16 0x107
#define S_WITH16 0x108
#define S_LABEL16 0x109
#define S_CEXMODEL16 0x10A
#define S_VFTPATH16 0x10B
#define S_BPREL32 0x200
#define S_LDATA32 0x201
#define S_GDATA32 0x202
#define S_PUB32 0x203
#define S_LPROC32 0x204
#define S_GPROC32 0x205
#define S_THUNK32 0x206
#define S_BLOCK32 0x207
#define S_WITH32 0x208
#define S_LABEL32 0x209
#define S_CEXMODEL32 0x20A
#define S_VFTPATH32 0x20B
// Leaf Indices
#define LF_MODIFIER 1
#define LF_POINTER 2
#define LF_ARRAY 3
#define LF_CLASS 4
#define LF_STRUCTURE 5
#define LF_UNION 6
#define LF_ENUM 7
#define LF_PROCEDURE 8
#define LF_MFUNCTION 9
#define LF_VTSHAPE 0x0A
#define LF_COBOL0 0x0B
#define LF_COBOL1 0x0C
#define LF_BARRAY 0x0D
#define LF_LABEL 0x0E
#define LF_NULL 0x0F
#define LF_NOTTRAN 0x10
#define LF_DIMARRAY 0x11
#define LF_VFTPATH 0x12
#define LF_PRECOMP 0x13
#define LF_ENDPRECOMP 0x14
#define LF_OEM 0x15
#define LF_TYPESERVER 0x16
// D extensions (not used, causes linker to fail)
#define LF_DYN_ARRAY 0x17
#define LF_ASSOC_ARRAY 0x18
#define LF_DELEGATE 0x19
#define LF_SKIP 0x200
#define LF_ARGLIST 0x201
#define LF_DEFARG 0x202
#define LF_LIST 0x203
#define LF_FIELDLIST 0x204
#define LF_DERIVED 0x205
#define LF_BITFIELD 0x206
#define LF_METHODLIST 0x207
#define LF_DIMCONU 0x208
#define LF_DIMCONLU 0x209
#define LF_DIMVARU 0x20A
#define LF_DIMVARLU 0x20B
#define LF_REFSYM 0x20C
#define LF_BCLASS 0x400
#define LF_VBCLASS 0x401
#define LF_IVBCLASS 0x402
#define LF_ENUMERATE 0x403
#define LF_FRIENDFCN 0x404
#define LF_INDEX 0x405
#define LF_MEMBER 0x406
#define LF_STMEMBER 0x407
#define LF_METHOD 0x408
#define LF_NESTTYPE 0x409
#define LF_VFUNCTAB 0x40A
#define LF_FRIENDCLS 0x40B
#define LF_NUMERIC 0x8000
#define LF_CHAR 0x8000
#define LF_SHORT 0x8001
#define LF_USHORT 0x8002
#define LF_LONG 0x8003
#define LF_ULONG 0x8004
#define LF_REAL32 0x8005
#define LF_REAL64 0x8006
#define LF_REAL80 0x8007
#define LF_REAL128 0x8008
#define LF_QUADWORD 0x8009
#define LF_UQUADWORD 0x800A
#define LF_REAL48 0x800B
#define LF_COMPLEX32 0x800C
#define LF_COMPLEX64 0x800D
#define LF_COMPLEX80 0x800E
#define LF_COMPLEX128 0x800F
#define LF_VARSTRING 0x8010