0
|
1 module dmd.backend.mTY;
|
|
2
|
|
3 enum mTY
|
|
4 {
|
|
5 /* Linkage type */
|
|
6 mTYnear = 0x100,
|
|
7 mTYfar = 0x200,
|
|
8 mTYcs = 0x400, // in code segment
|
|
9 mTYthread = 0x800,
|
|
10 mTYLINK = 0xF00, // all linkage bits
|
|
11
|
|
12 mTYloadds = 0x1000,
|
|
13 mTYexport = 0x2000,
|
|
14 mTYweak = 0x0000,
|
|
15 mTYimport = 0x4000,
|
|
16 mTYnaked = 0x8000,
|
|
17 mTYMOD = 0xF000, // all modifier bits
|
|
18
|
|
19 mTYbasic = 0x3F, /* bit mask for basic types */
|
|
20
|
|
21 /* Modifiers to basic types */
|
|
22 /// #ifdef JHANDLE
|
|
23 /// mTYarrayhandle = 0x80,
|
|
24 /// #else
|
|
25 mTYarrayhandle = 0x0,
|
|
26 /// #endif
|
|
27 mTYconst = 0x40,
|
|
28 mTYvolatile = 0x80,
|
|
29 mTYrestrict = 0, // BUG: add for C99
|
|
30 mTYmutable = 0, // need to add support
|
|
31 mTYunaligned = 0, // non-zero for PowerPC
|
|
32
|
|
33 mTYimmutable = 0x1000000, // immutable data
|
|
34 mTYshared = 0x2000000, // shared data
|
|
35 mTYnothrow = 0x4000000, // nothrow function
|
|
36 }
|
|
37
|
|
38 import dmd.EnumUtils;
|
|
39 mixin(BringToCurrentScope!(mTY));
|
|
40
|
|
41 uint tybasic(uint ty) {
|
|
42 return ((ty) & mTY.mTYbasic);
|
|
43 } |