X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FClosureFlags.c;h=6df823c7feaaa90b9b278f9d13170def4965a4bb;hb=272a418428beede04a9c4ae027474878c59d6ca1;hp=17b6892095c05cb53e6478b0391c5ed5487f4317;hpb=30681e796f707fa109aaf756d4586049f595195d;p=ghc-hetmet.git diff --git a/ghc/rts/ClosureFlags.c b/ghc/rts/ClosureFlags.c index 17b6892..6df823c 100644 --- a/ghc/rts/ClosureFlags.c +++ b/ghc/rts/ClosureFlags.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: ClosureFlags.c,v 1.4 1999/11/09 15:46:49 simonmar Exp $ + * $Id: ClosureFlags.c,v 1.13 2002/12/11 15:36:41 simonmar Exp $ * * (c) The GHC Team 1998-1999 * @@ -7,6 +7,7 @@ * * ---------------------------------------------------------------------------*/ +#include "PosixSource.h" #include "Rts.h" StgWord16 closure_flags[] = { @@ -16,69 +17,81 @@ StgWord16 closure_flags[] = { * ClosureTypes.h. */ -/* HNF BTM NS STA THU MUT UPT SRT */ - -/* INVALID_OBJECT */ ( 0 ), -/* CONSTR */ (_HNF| _NS ), -/* CONSTR_1_0 */ (_HNF| _NS ), -/* CONSTR_0_1 */ (_HNF| _NS ), -/* CONSTR_2_0 */ (_HNF| _NS ), -/* CONSTR_1_1 */ (_HNF| _NS ), -/* CONSTR_0_2 */ (_HNF| _NS ), -/* CONSTR_INTLIKE */ (_HNF| _NS|_STA ), -/* CONSTR_CHARLIKE */ (_HNF| _NS|_STA ), -/* CONSTR_STATIC */ (_HNF| _NS|_STA ), -/* CONSTR_NOCAF_STATIC */ (_HNF| _NS|_STA ), -/* FUN */ (_HNF| _NS| _SRT ), -/* FUN_1_0 */ (_HNF| _NS ), -/* FUN_0_1 */ (_HNF| _NS ), -/* FUN_2_0 */ (_HNF| _NS ), -/* FUN_1_1 */ (_HNF| _NS ), -/* FUN_0_2 */ (_HNF| _NS ), -/* FUN_STATIC */ (_HNF| _NS|_STA| _SRT ), -/* THUNK */ ( _BTM| _THU| _SRT ), -/* THUNK_1_0 */ ( _BTM| _THU| _SRT ), -/* THUNK_0_1 */ ( _BTM| _THU| _SRT ), -/* THUNK_2_0 */ ( _BTM| _THU| _SRT ), -/* THUNK_1_1 */ ( _BTM| _THU| _SRT ), -/* THUNK_0_2 */ ( _BTM| _THU| _SRT ), -/* THUNK_STATIC */ ( _BTM| _STA|_THU| _SRT ), -/* THUNK_SELECTOR */ ( _BTM| _THU| _SRT ), -/* BCO */ (_HNF| _NS ), -/* AP_UPD */ ( _BTM| _THU ), -/* PAP */ (_HNF| _NS ), -/* IND */ ( 0 ), -/* IND_OLDGEN */ ( 0 ), -/* IND_PERM */ ( 0 ), -/* IND_OLDGEN_PERM */ ( 0 ), -/* IND_STATIC */ ( _STA ), -/* CAF_UNENTERED */ ( 0 ), -/* CAF_ENTERED */ ( 0 ), -/* CAF_BLACKHOLE */ ( _BTM|_NS| _MUT|_UPT ), -/* RET_BCO */ ( _BTM ), -/* RET_SMALL */ ( _BTM| _SRT), -/* RET_VEC_SMALL */ ( _BTM| _SRT), -/* RET_BIG */ ( _SRT), -/* RET_VEC_BIG */ ( _SRT), -/* RET_DYN */ ( _SRT), -/* UPDATE_FRAME */ ( _BTM ), -/* CATCH_FRAME */ ( _BTM ), -/* STOP_FRAME */ ( _BTM ), -/* SEQ_FRAME */ ( _BTM ), -/* BLACKHOLE */ ( _NS| _MUT|_UPT ), -/* BLACKHOLE_BQ */ ( _NS| _MUT|_UPT ), -/* SE_BLACKHOLE */ ( _NS| _UPT ), -/* SE_CAF_BLACKHOLE */ ( _NS| _UPT ), -/* MVAR */ (_HNF| _NS| _MUT|_UPT ), -/* ARR_WORDS */ (_HNF| _NS| _UPT ), -/* MUT_ARR_PTRS */ (_HNF| _NS| _MUT|_UPT ), -/* MUT_ARR_PTRS_FROZEN */ (_HNF| _NS| _MUT|_UPT ), -/* MUT_VAR */ (_HNF| _NS| _MUT|_UPT ), -/* WEAK */ (_HNF| _NS| _UPT ), -/* FOREIGN */ (_HNF| _NS| _UPT ), -/* STABLE_NAME */ (_HNF| _NS| _UPT ), -/* TSO */ (_HNF| _NS| _MUT|_UPT ), -/* BLOCKED_FETCH */ (_HNF| _NS ), -/* FETCH_ME */ (_HNF| _NS ), -/* EVACUATED */ ( 0 ) +/* ToDo: some of these flags seem to be duplicated. + * - NS is the same as HNF, and the negation of THU + * (however, we set NS for indirections, which is probably the + * right thing to do, since we never get indirections pointing + * to thunks.) + */ + +/* 0 1 2 3 4 5 6 7 */ +/* HNF BTM NS STA THU MUT UPT SRT */ + +/* INVALID_OBJECT = */ ( 0 ), +/* CONSTR = */ (_HNF| _NS ), +/* CONSTR_1_0 = */ (_HNF| _NS ), +/* CONSTR_0_1 = */ (_HNF| _NS ), +/* CONSTR_2_0 = */ (_HNF| _NS ), +/* CONSTR_1_1 = */ (_HNF| _NS ), +/* CONSTR_0_2 = */ (_HNF| _NS ), +/* CONSTR_INTLIKE = */ (_HNF| _NS|_STA ), +/* CONSTR_CHARLIKE = */ (_HNF| _NS|_STA ), +/* CONSTR_STATIC = */ (_HNF| _NS|_STA ), +/* CONSTR_NOCAF_STATIC = */ (_HNF| _NS|_STA ), +/* FUN = */ (_HNF| _NS| _SRT ), +/* FUN_1_0 = */ (_HNF| _NS| _SRT ), +/* FUN_0_1 = */ (_HNF| _NS| _SRT ), +/* FUN_2_0 = */ (_HNF| _NS| _SRT ), +/* FUN_1_1 = */ (_HNF| _NS| _SRT ), +/* FUN_0_2 = */ (_HNF| _NS| _SRT ), +/* FUN_STATIC = */ (_HNF| _NS|_STA| _SRT ), +/* THUNK = */ ( _BTM| _THU| _SRT ), +/* THUNK_1_0 = */ ( _BTM| _THU| _SRT ), +/* THUNK_0_1 = */ ( _BTM| _THU| _SRT ), +/* THUNK_2_0 = */ ( _BTM| _THU| _SRT ), +/* THUNK_1_1 = */ ( _BTM| _THU| _SRT ), +/* THUNK_0_2 = */ ( _BTM| _THU| _SRT ), +/* THUNK_STATIC = */ ( _BTM| _STA|_THU| _SRT ), +/* THUNK_SELECTOR = */ ( _BTM| _THU| _SRT ), +/* BCO = */ (_HNF| _NS ), +/* AP = */ ( _THU ), +/* PAP = */ (_HNF| _NS ), +/* AP_STACK = */ ( _THU ), +/* IND = */ ( _NS| _IND ), +/* IND_OLDGEN = */ ( _NS| _IND ), +/* IND_PERM = */ ( _NS| _IND ), +/* IND_OLDGEN_PERM = */ ( _NS| _IND ), +/* IND_STATIC = */ ( _NS|_STA| _IND ), +/* RET_BCO = */ ( _BTM ), +/* RET_SMALL = */ ( _BTM| _SRT ), +/* RET_VEC_SMALL = */ ( _BTM| _SRT ), +/* RET_BIG = */ ( _SRT ), +/* RET_VEC_BIG = */ ( _SRT ), +/* RET_DYN = */ ( _SRT ), +/* RET_FUN = */ ( 0 ), +/* UPDATE_FRAME = */ ( _BTM ), +/* CATCH_FRAME = */ ( _BTM ), +/* STOP_FRAME = */ ( _BTM ), +/* CAF_BLACKHOLE = */ ( _BTM|_NS| _UPT ), +/* BLACKHOLE = */ ( _NS| _UPT ), +/* BLACKHOLE_BQ = */ ( _NS| _MUT|_UPT ), +/* SE_BLACKHOLE = */ ( _NS| _UPT ), +/* SE_CAF_BLACKHOLE = */ ( _NS| _UPT ), +/* MVAR = */ (_HNF| _NS| _MUT|_UPT ), +/* ARR_WORDS = */ (_HNF| _NS| _UPT ), +/* MUT_ARR_PTRS = */ (_HNF| _NS| _MUT|_UPT ), +/* MUT_ARR_PTRS_FROZEN = */ (_HNF| _NS| _UPT ), +/* MUT_VAR = */ (_HNF| _NS| _MUT|_UPT ), +/* MUT_CONS = */ (_HNF| _NS| _UPT ), +/* WEAK = */ (_HNF| _NS| _UPT ), +/* FOREIGN = */ (_HNF| _NS| _UPT ), +/* STABLE_NAME = */ (_HNF| _NS| _UPT ), +/* TSO = */ (_HNF| _NS| _MUT|_UPT ), +/* BLOCKED_FETCH = */ (_HNF| _NS| _MUT|_UPT ), +/* FETCH_ME = */ (_HNF| _NS| _MUT|_UPT ), +/* FETCH_ME_BQ = */ ( _NS| _MUT|_UPT ), +/* RBH = */ ( _NS| _MUT|_UPT ), +/* EVACUATED = */ ( 0 ), +/* REMOTE_REF = */ (_HNF| _NS| _UPT ), +/* STACK = */ (_HNF| _NS| _MUT ) };