1 /* -----------------------------------------------------------------------------
2 * $Id: ClosureFlags.c,v 1.12 2002/04/19 12:23:11 simonmar Exp $
4 * (c) The GHC Team 1998-1999
8 * ---------------------------------------------------------------------------*/
10 #include "PosixSource.h"
13 StgWord16 closure_flags[] = {
16 * These *must* be in the same order as the closure types in
20 /* ToDo: some of these flags seem to be duplicated.
21 * - NS is the same as HNF, and the negation of THU
22 * (however, we set NS for indirections, which is probably the
23 * right thing to do, since we never get indirections pointing
28 /* HNF BTM NS STA THU MUT UPT SRT */
30 /* INVALID_OBJECT = */ ( 0 ),
31 /* CONSTR = */ (_HNF| _NS ),
32 /* CONSTR_1_0 = */ (_HNF| _NS ),
33 /* CONSTR_0_1 = */ (_HNF| _NS ),
34 /* CONSTR_2_0 = */ (_HNF| _NS ),
35 /* CONSTR_1_1 = */ (_HNF| _NS ),
36 /* CONSTR_0_2 = */ (_HNF| _NS ),
37 /* CONSTR_INTLIKE = */ (_HNF| _NS|_STA ),
38 /* CONSTR_CHARLIKE = */ (_HNF| _NS|_STA ),
39 /* CONSTR_STATIC = */ (_HNF| _NS|_STA ),
40 /* CONSTR_NOCAF_STATIC = */ (_HNF| _NS|_STA ),
41 /* FUN = */ (_HNF| _NS| _SRT ),
42 /* FUN_1_0 = */ (_HNF| _NS| _SRT ),
43 /* FUN_0_1 = */ (_HNF| _NS| _SRT ),
44 /* FUN_2_0 = */ (_HNF| _NS| _SRT ),
45 /* FUN_1_1 = */ (_HNF| _NS| _SRT ),
46 /* FUN_0_2 = */ (_HNF| _NS| _SRT ),
47 /* FUN_STATIC = */ (_HNF| _NS|_STA| _SRT ),
48 /* THUNK = */ ( _BTM| _THU| _SRT ),
49 /* THUNK_1_0 = */ ( _BTM| _THU| _SRT ),
50 /* THUNK_0_1 = */ ( _BTM| _THU| _SRT ),
51 /* THUNK_2_0 = */ ( _BTM| _THU| _SRT ),
52 /* THUNK_1_1 = */ ( _BTM| _THU| _SRT ),
53 /* THUNK_0_2 = */ ( _BTM| _THU| _SRT ),
54 /* THUNK_STATIC = */ ( _BTM| _STA|_THU| _SRT ),
55 /* THUNK_SELECTOR = */ ( _BTM| _THU| _SRT ),
56 /* BCO = */ (_HNF| _NS ),
57 /* AP_UPD = */ ( _BTM| _THU ),
58 /* PAP = */ (_HNF| _NS ),
59 /* IND = */ ( _NS| _IND ),
60 /* IND_OLDGEN = */ ( _NS| _IND ),
61 /* IND_PERM = */ ( _NS| _IND ),
62 /* IND_OLDGEN_PERM = */ ( _NS| _IND ),
63 /* IND_STATIC = */ ( _NS|_STA| _IND ),
64 /* RET_BCO = */ ( _BTM ),
65 /* RET_SMALL = */ ( _BTM| _SRT ),
66 /* RET_VEC_SMALL = */ ( _BTM| _SRT ),
67 /* RET_BIG = */ ( _SRT ),
68 /* RET_VEC_BIG = */ ( _SRT ),
69 /* RET_DYN = */ ( _SRT ),
70 /* UPDATE_FRAME = */ ( _BTM ),
71 /* CATCH_FRAME = */ ( _BTM ),
72 /* STOP_FRAME = */ ( _BTM ),
73 /* SEQ_FRAME = */ ( _BTM ),
74 /* CAF_BLACKHOLE = */ ( _BTM|_NS| _UPT ),
75 /* BLACKHOLE = */ ( _NS| _UPT ),
76 /* BLACKHOLE_BQ = */ ( _NS| _MUT|_UPT ),
77 /* SE_BLACKHOLE = */ ( _NS| _UPT ),
78 /* SE_CAF_BLACKHOLE = */ ( _NS| _UPT ),
79 /* MVAR = */ (_HNF| _NS| _MUT|_UPT ),
80 /* ARR_WORDS = */ (_HNF| _NS| _UPT ),
81 /* MUT_ARR_PTRS = */ (_HNF| _NS| _MUT|_UPT ),
82 /* MUT_ARR_PTRS_FROZEN = */ (_HNF| _NS| _UPT ),
83 /* MUT_VAR = */ (_HNF| _NS| _MUT|_UPT ),
84 /* MUT_CONS = */ (_HNF| _NS| _UPT ),
85 /* WEAK = */ (_HNF| _NS| _UPT ),
86 /* FOREIGN = */ (_HNF| _NS| _UPT ),
87 /* STABLE_NAME = */ (_HNF| _NS| _UPT ),
88 /* TSO = */ (_HNF| _NS| _MUT|_UPT ),
89 /* BLOCKED_FETCH = */ (_HNF| _NS| _MUT|_UPT ),
90 /* FETCH_ME = */ (_HNF| _NS| _MUT|_UPT ),
91 /* FETCH_ME_BQ = */ ( _NS| _MUT|_UPT ),
92 /* RBH = */ ( _NS| _MUT|_UPT ),
93 /* EVACUATED = */ ( 0 ),
94 /* REMOTE_REF = */ (_HNF| _NS| _UPT )