X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FClosureFlags.c;h=89e98e4728f600a78659d8490f880eb250bd9dd9;hb=5e95bdca03203ece2f965551dda1d06980771a81;hp=439e1b7e22d03f0b4345e7d54616278a0554a7af;hpb=f6692611aad945e46ffb615bde1df7def3fc742f;p=ghc-hetmet.git diff --git a/ghc/rts/ClosureFlags.c b/ghc/rts/ClosureFlags.c index 439e1b7..89e98e4 100644 --- a/ghc/rts/ClosureFlags.c +++ b/ghc/rts/ClosureFlags.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: ClosureFlags.c,v 1.3 1999/11/02 15:05:56 simonmar Exp $ + * $Id: ClosureFlags.c,v 1.6 2000/01/13 14:34:02 hwloidl Exp $ * * (c) The GHC Team 1998-1999 * @@ -16,6 +16,14 @@ StgWord16 closure_flags[] = { * ClosureTypes.h. */ +/* 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 ), @@ -47,14 +55,14 @@ StgWord16 closure_flags[] = { /* 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 ), +/* IND */ ( _NS ), +/* IND_OLDGEN */ ( _NS ), +/* IND_PERM */ ( _NS ), +/* IND_OLDGEN_PERM */ ( _NS ), +/* IND_STATIC */ ( _NS|_STA ), /* CAF_UNENTERED */ ( 0 ), /* CAF_ENTERED */ ( 0 ), -/* BLACKHOLE_BQ */ ( _BTM|_NS| _MUT|_UPT ), +/* CAF_BLACKHOLE */ ( _BTM|_NS| _MUT|_UPT ), /* RET_BCO */ ( _BTM ), /* RET_SMALL */ ( _BTM| _SRT), /* RET_VEC_SMALL */ ( _BTM| _SRT), @@ -65,7 +73,7 @@ StgWord16 closure_flags[] = { /* CATCH_FRAME */ ( _BTM ), /* STOP_FRAME */ ( _BTM ), /* SEQ_FRAME */ ( _BTM ), -/* BLACKHOLE */ ( _NS| _UPT ), +/* BLACKHOLE */ ( _NS| _MUT|_UPT ), /* BLACKHOLE_BQ */ ( _NS| _MUT|_UPT ), /* SE_BLACKHOLE */ ( _NS| _UPT ), /* SE_CAF_BLACKHOLE */ ( _NS| _UPT ), @@ -77,8 +85,14 @@ StgWord16 closure_flags[] = { /* 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 ) +/* BLOCKED_FETCH */ (_HNF| _NS| _MUT|_UPT ), +/* FETCH_ME */ (_HNF| _NS| _MUT|_UPT ), +/* FETCH_ME_BQ */ ( _NS| _MUT|_UPT ), +/* RBH */ ( _NS| _MUT|_UPT ), + +/* EVACUATED */ ( 0 ), + +/* N_CLOSURE_TYPES */ ( 0 ) };