1 /* -----------------------------------------------------------------------------
2 * $Id: ClosureFlags.c,v 1.13 2002/12/11 15:36:41 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 ),
58 /* PAP = */ (_HNF| _NS ),
59 /* AP_STACK = */ ( _THU ),
60 /* IND = */ ( _NS| _IND ),
61 /* IND_OLDGEN = */ ( _NS| _IND ),
62 /* IND_PERM = */ ( _NS| _IND ),
63 /* IND_OLDGEN_PERM = */ ( _NS| _IND ),
64 /* IND_STATIC = */ ( _NS|_STA| _IND ),
65 /* RET_BCO = */ ( _BTM ),
66 /* RET_SMALL = */ ( _BTM| _SRT ),
67 /* RET_VEC_SMALL = */ ( _BTM| _SRT ),
68 /* RET_BIG = */ ( _SRT ),
69 /* RET_VEC_BIG = */ ( _SRT ),
70 /* RET_DYN = */ ( _SRT ),
71 /* RET_FUN = */ ( 0 ),
72 /* UPDATE_FRAME = */ ( _BTM ),
73 /* CATCH_FRAME = */ ( _BTM ),
74 /* STOP_FRAME = */ ( _BTM ),
75 /* CAF_BLACKHOLE = */ ( _BTM|_NS| _UPT ),
76 /* BLACKHOLE = */ ( _NS| _UPT ),
77 /* BLACKHOLE_BQ = */ ( _NS| _MUT|_UPT ),
78 /* SE_BLACKHOLE = */ ( _NS| _UPT ),
79 /* SE_CAF_BLACKHOLE = */ ( _NS| _UPT ),
80 /* MVAR = */ (_HNF| _NS| _MUT|_UPT ),
81 /* ARR_WORDS = */ (_HNF| _NS| _UPT ),
82 /* MUT_ARR_PTRS = */ (_HNF| _NS| _MUT|_UPT ),
83 /* MUT_ARR_PTRS_FROZEN = */ (_HNF| _NS| _UPT ),
84 /* MUT_VAR = */ (_HNF| _NS| _MUT|_UPT ),
85 /* MUT_CONS = */ (_HNF| _NS| _UPT ),
86 /* WEAK = */ (_HNF| _NS| _UPT ),
87 /* FOREIGN = */ (_HNF| _NS| _UPT ),
88 /* STABLE_NAME = */ (_HNF| _NS| _UPT ),
89 /* TSO = */ (_HNF| _NS| _MUT|_UPT ),
90 /* BLOCKED_FETCH = */ (_HNF| _NS| _MUT|_UPT ),
91 /* FETCH_ME = */ (_HNF| _NS| _MUT|_UPT ),
92 /* FETCH_ME_BQ = */ ( _NS| _MUT|_UPT ),
93 /* RBH = */ ( _NS| _MUT|_UPT ),
94 /* EVACUATED = */ ( 0 ),
95 /* REMOTE_REF = */ (_HNF| _NS| _UPT ),
96 /* STACK = */ (_HNF| _NS| _MUT )