[project @ 1999-02-05 15:25:01 by simonm]
[ghc-hetmet.git] / ghc / includes / InfoTables.h
index fb1640d..e7bc9a1 100644 (file)
@@ -1,5 +1,5 @@
 /* ----------------------------------------------------------------------------
- * $Id: InfoTables.h,v 1.6 1999/01/26 11:12:55 simonm Exp $
+ * $Id: InfoTables.h,v 1.9 1999/02/05 15:25:02 simonm Exp $
  * 
  * Info Tables
  *
@@ -85,18 +85,32 @@ typedef struct {
 typedef enum {
 
     INVALID_OBJECT /* Object tag 0 raises an internal error */
+
     , CONSTR
-    /* CONSTR_p_np */
+    , CONSTR_1_0
+    , CONSTR_0_1
+    , CONSTR_2_0
+    , CONSTR_1_1
+    , CONSTR_0_2
     , CONSTR_INTLIKE
     , CONSTR_CHARLIKE
     , CONSTR_STATIC
     , CONSTR_NOCAF_STATIC
 
     , FUN
+    , FUN_1_0
+    , FUN_0_1
+    , FUN_2_0
+    , FUN_1_1
+    , FUN_0_2
     , FUN_STATIC
 
     , THUNK
-    /* THUNK_p_np */
+    , THUNK_1_0
+    , THUNK_0_1
+    , THUNK_2_0
+    , THUNK_1_1
+    , THUNK_0_2
     , THUNK_STATIC
     , THUNK_SELECTOR
 
@@ -132,8 +146,6 @@ typedef enum {
     , MVAR
 
     , ARR_WORDS
-    , MUT_ARR_WORDS
-
     , MUT_ARR_PTRS
     , MUT_ARR_PTRS_FROZEN
 
@@ -176,11 +188,26 @@ typedef enum {
 /*                                 HNF  BTM   NS  STA  THU MUT UPT SRT */
                                                                    
 #define FLAGS_CONSTR              (_HNF|     _NS                        )      
+#define FLAGS_CONSTR_1_0          (_HNF|     _NS                        )      
+#define FLAGS_CONSTR_0_1          (_HNF|     _NS                        )      
+#define FLAGS_CONSTR_2_0          (_HNF|     _NS                        )      
+#define FLAGS_CONSTR_1_1          (_HNF|     _NS                        )      
+#define FLAGS_CONSTR_0_2          (_HNF|     _NS                        )      
 #define FLAGS_CONSTR_STATIC       (_HNF|     _NS|_STA                   )      
 #define FLAGS_CONSTR_NOCAF_STATIC  (_HNF|     _NS|_STA                   )     
 #define FLAGS_FUN                 (_HNF|     _NS|                  _SRT )      
+#define FLAGS_FUN_1_0             (_HNF|     _NS                        )      
+#define FLAGS_FUN_0_1             (_HNF|     _NS                        )      
+#define FLAGS_FUN_2_0             (_HNF|     _NS                        )      
+#define FLAGS_FUN_1_1             (_HNF|     _NS                        )      
+#define FLAGS_FUN_0_2             (_HNF|     _NS                        )      
 #define FLAGS_FUN_STATIC          (_HNF|     _NS|_STA|             _SRT )      
 #define FLAGS_THUNK               (     _BTM|         _THU|        _SRT )      
+#define FLAGS_THUNK_1_0                   (     _BTM|         _THU|        _SRT )      
+#define FLAGS_THUNK_0_1                   (     _BTM|         _THU|        _SRT )      
+#define FLAGS_THUNK_2_0                   (     _BTM|         _THU|        _SRT )      
+#define FLAGS_THUNK_1_1                   (     _BTM|         _THU|        _SRT )      
+#define FLAGS_THUNK_0_2                   (     _BTM|         _THU|        _SRT )      
 #define FLAGS_THUNK_STATIC        (     _BTM|    _STA|_THU|        _SRT )      
 #define FLAGS_THUNK_SELECTOR      (     _BTM|         _THU|        _SRT )      
 #define FLAGS_BCO                 (_HNF|     _NS                        )      
@@ -196,7 +223,6 @@ typedef enum {
 #define FLAGS_IND_STATIC          (              _STA                   )      
 #define FLAGS_EVACUATED                   0
 #define FLAGS_ARR_WORDS                   (_HNF|     _NS|              _UPT     )      
-#define FLAGS_MUT_ARR_WORDS       (_HNF|     _NS|         _MUT|_UPT     )      
 #define FLAGS_MUT_ARR_PTRS        (_HNF|     _NS|         _MUT|_UPT     )      
 #define FLAGS_MUT_ARR_PTRS_FROZEN  (_HNF|     _NS|         _MUT|_UPT     )     
 #define FLAGS_MUT_VAR             (_HNF|     _NS|         _MUT|_UPT     )      
@@ -271,9 +297,15 @@ typedef StgClosure* StgSRT[];
 
 typedef struct _StgInfoTable {
     StgSRT         *srt;       /* pointer to the SRT table */
+#ifdef PAR
     StgParInfo     par;
+#endif
+#ifdef PROFILING
     StgProfInfo     prof;
+#endif
+#ifdef DEBUG_CLOSURE
     StgDebugInfo    debug;
+#endif
     StgClosureInfo  layout;    /* closure layout info (pointer-sized) */
 #if SIZEOF_VOID_P == 8
     StgNat16        flags;     /* }                                   */