~ubuntu-branches/ubuntu/precise/ghc/precise

« back to all changes in this revision

Viewing changes to rts/ClosureFlags.c

  • Committer: Bazaar Package Importer
  • Author(s): Joachim Breitner
  • Date: 2011-01-17 12:49:24 UTC
  • Revision ID: james.westby@ubuntu.com-20110117124924-do1pym1jlf5o636m
Tags: upstream-7.0.1
ImportĀ upstreamĀ versionĀ 7.0.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -----------------------------------------------------------------------------
 
2
 *
 
3
 * (c) The GHC Team 1998-1999
 
4
 *
 
5
 * Closure type flags
 
6
 *
 
7
 * ---------------------------------------------------------------------------*/
 
8
 
 
9
#include "PosixSource.h"
 
10
#include "Rts.h"
 
11
 
 
12
StgWord16 closure_flags[] = {
 
13
 
 
14
/* ToDo: some of these flags seem to be duplicated.
 
15
 *       - NS is the same as HNF, and the negation of THU
 
16
 * (however, we set NS for indirections, which is probably the
 
17
 *  right thing to do, since we never get indirections pointing
 
18
 *  to thunks.)
 
19
 */
 
20
 
 
21
/*                              0    1    2    3    4   5   6   7     8 */
 
22
/*                            HNF  BTM   NS  STA  THU MUT UPT SRT   IND */
 
23
 
 
24
 [INVALID_OBJECT]       =  ( 0                                           ),
 
25
 [CONSTR]               =  (_HNF|     _NS                                ),
 
26
 [CONSTR_1_0]           =  (_HNF|     _NS                                ),
 
27
 [CONSTR_0_1]           =  (_HNF|     _NS                                ),
 
28
 [CONSTR_2_0]           =  (_HNF|     _NS                                ),
 
29
 [CONSTR_1_1]           =  (_HNF|     _NS                                ),
 
30
 [CONSTR_0_2]           =  (_HNF|     _NS                                ),
 
31
 [CONSTR_STATIC]        =  (_HNF|     _NS|_STA                           ),
 
32
 [CONSTR_NOCAF_STATIC]  =  (_HNF|     _NS|_STA                           ),
 
33
 [FUN]                  =  (_HNF|     _NS|                  _SRT         ),
 
34
 [FUN_1_0]              =  (_HNF|     _NS|                  _SRT         ),
 
35
 [FUN_0_1]              =  (_HNF|     _NS|                  _SRT         ),
 
36
 [FUN_2_0]              =  (_HNF|     _NS|                  _SRT         ),
 
37
 [FUN_1_1]              =  (_HNF|     _NS|                  _SRT         ),
 
38
 [FUN_0_2]              =  (_HNF|     _NS|                  _SRT         ),
 
39
 [FUN_STATIC]           =  (_HNF|     _NS|_STA|             _SRT         ),
 
40
 [THUNK]                =  (     _BTM|         _THU|        _SRT         ),
 
41
 [THUNK_1_0]            =  (     _BTM|         _THU|        _SRT         ),
 
42
 [THUNK_0_1]            =  (     _BTM|         _THU|        _SRT         ),
 
43
 [THUNK_2_0]            =  (     _BTM|         _THU|        _SRT         ),
 
44
 [THUNK_1_1]            =  (     _BTM|         _THU|        _SRT         ),
 
45
 [THUNK_0_2]            =  (     _BTM|         _THU|        _SRT         ),
 
46
 [THUNK_STATIC]         =  (     _BTM|    _STA|_THU|        _SRT         ),
 
47
 [THUNK_SELECTOR]       =  (     _BTM|         _THU|        _SRT         ),
 
48
 [BCO]                  =  (_HNF|     _NS                                ),
 
49
 [AP]                   =  (                   _THU                      ),
 
50
 [PAP]                  =  (_HNF|     _NS                                ),
 
51
 [AP_STACK]             =  (                   _THU                      ),
 
52
 [IND]                  =  (          _NS|                        _IND ),
 
53
 [IND_PERM]             =  (          _NS|                        _IND ),
 
54
 [IND_STATIC]           =  (          _NS|_STA|                   _IND ),
 
55
 [RET_BCO]              =  (     _BTM                                  ),
 
56
 [RET_SMALL]            =  (     _BTM|                       _SRT      ),
 
57
 [RET_BIG]              =  (                                 _SRT      ),
 
58
 [RET_DYN]              =  (                                 _SRT      ),
 
59
 [RET_FUN]              =  ( 0                                         ),
 
60
 [UPDATE_FRAME]         =  (     _BTM                                  ),
 
61
 [CATCH_FRAME]          =  (     _BTM                                  ),
 
62
 [STOP_FRAME]           =  (     _BTM                                  ),
 
63
 [BLACKHOLE]            =  (          _NS|              _UPT           ),
 
64
 [BLOCKING_QUEUE]       =  (          _NS|         _MUT|_UPT           ),
 
65
 [MVAR_CLEAN]           =  (_HNF|     _NS|         _MUT|_UPT           ),
 
66
 [MVAR_DIRTY]           =  (_HNF|     _NS|         _MUT|_UPT           ),
 
67
 [ARR_WORDS]            =  (_HNF|     _NS|              _UPT           ),
 
68
 [MUT_ARR_PTRS_CLEAN]   =  (_HNF|     _NS|         _MUT|_UPT           ),
 
69
 [MUT_ARR_PTRS_DIRTY]   =  (_HNF|     _NS|         _MUT|_UPT           ),
 
70
 [MUT_ARR_PTRS_FROZEN0] =  (_HNF|     _NS|         _MUT|_UPT           ),
 
71
 [MUT_ARR_PTRS_FROZEN]  =  (_HNF|     _NS|              _UPT           ),
 
72
 [MUT_VAR_CLEAN]        =  (_HNF|     _NS|         _MUT|_UPT           ),
 
73
 [MUT_VAR_DIRTY]        =  (_HNF|     _NS|         _MUT|_UPT           ),
 
74
 [WEAK]                 =  (_HNF|     _NS|              _UPT           ),
 
75
 [PRIM]                 =  (_HNF|     _NS|              _UPT           ),
 
76
 [MUT_PRIM]             =  (_HNF|     _NS|         _MUT|_UPT           ),
 
77
 [TSO]                  =  (_HNF|     _NS|         _MUT|_UPT           ),
 
78
 [TREC_CHUNK]           =  (          _NS|         _MUT|_UPT           ),
 
79
 [ATOMICALLY_FRAME]     =  (     _BTM                                  ),
 
80
 [CATCH_RETRY_FRAME]    =  (     _BTM                                  ),
 
81
 [CATCH_STM_FRAME]      =  (     _BTM                                  ),
 
82
 [WHITEHOLE]            =  ( 0                                         )
 
83
};
 
84
 
 
85
#if N_CLOSURE_TYPES != 59
 
86
#error Closure types changed: update ClosureFlags.c!
 
87
#endif