summaryrefslogtreecommitdiff
path: root/ghc/includes/InfoMacros.h
diff options
context:
space:
mode:
Diffstat (limited to 'ghc/includes/InfoMacros.h')
-rw-r--r--ghc/includes/InfoMacros.h108
1 files changed, 48 insertions, 60 deletions
diff --git a/ghc/includes/InfoMacros.h b/ghc/includes/InfoMacros.h
index 0964da7690..5aa4835eaf 100644
--- a/ghc/includes/InfoMacros.h
+++ b/ghc/includes/InfoMacros.h
@@ -1,5 +1,5 @@
/* ----------------------------------------------------------------------------
- * $Id: InfoMacros.h,v 1.21 2002/12/11 15:36:37 simonmar Exp $
+ * $Id: InfoMacros.h,v 1.22 2003/05/14 09:14:01 simonmar Exp $
*
* (c) The GHC Team, 1998-2002
*
@@ -10,8 +10,8 @@
#ifndef INFOMACROS_H
#define INFOMACROS_H
-#define STD_INFO(srt_len_, type_) \
- srt_len : srt_len_, \
+#define STD_INFO(srt_bitmap_, type_) \
+ srt_bitmap : srt_bitmap_, \
type : type_
#define THUNK_INFO(srt_, srt_off_) \
@@ -65,7 +65,7 @@
INFO_TABLE_THUNK(info, /* info-table label */ \
entry, /* entry code label */ \
ptrs, nptrs, /* closure layout info */\
- srt_, srt_off_, srt_len_, /* SRT info */ \
+ srt_, srt_off_, srt_bitmap_, /* SRT info */ \
type, /* closure type */ \
info_class, entry_class, /* C storage classes */ \
prof_descr, prof_type) /* profiling info */ \
@@ -75,7 +75,7 @@ INFO_TABLE_THUNK(info, /* info-table label */ \
info_class const StgInfoTable stg_RBH_##info = { \
layout : { payload : {ptrs,nptrs} }, \
PROF_INFO(prof_type, prof_descr) \
- SRT_INFO(RBH,srt_,srt_off_,srt_len_), \
+ SRT_INFO(RBH,srt_,srt_off_,srt_bitmap_), \
INCLUDE_RBH_INFO(info), \
INIT_ENTRY(stg_RBH_##entry) \
} ; \
@@ -87,7 +87,7 @@ INFO_TABLE_THUNK(info, /* info-table label */ \
info_class const StgInfoTable info = { \
layout : { payload : {ptrs,nptrs} }, \
PROF_INFO(prof_type, prof_descr) \
- SRT_INFO(type,srt_,srt_off_,srt_len_), \
+ SRT_INFO(type,srt_,srt_off_,srt_bitmap_), \
INCLUDE_RBH_INFO(stg_RBH_##info), \
INIT_ENTRY(entry) \
}
@@ -98,7 +98,7 @@ INFO_TABLE_THUNK(info, /* info-table label */ \
INFO_TABLE_THUNK(info, /* info-table label */ \
entry, /* entry code label */ \
ptrs, nptrs, /* closure layout info */\
- srt_, srt_off_, srt_len_, /* SRT info */ \
+ srt_, srt_off_, srt_bitmap_, /* SRT info */ \
type_, /* closure type */ \
info_class, entry_class, /* C storage classes */ \
prof_descr, prof_type) /* profiling info */ \
@@ -107,7 +107,7 @@ INFO_TABLE_THUNK(info, /* info-table label */ \
i : { \
layout : { payload : {ptrs,nptrs} }, \
PROF_INFO(prof_type, prof_descr) \
- STD_INFO(srt_len_, type_), \
+ STD_INFO(srt_bitmap_, type_), \
INIT_ENTRY(entry) \
}, \
THUNK_INFO(srt_,srt_off_), \
@@ -120,7 +120,7 @@ INFO_TABLE_THUNK(info, /* info-table label */ \
#if defined(GRAN) || defined(PAR)
#define \
-INFO_TABLE_RET(info, entry, bitmap_, srt_, srt_off_, srt_len_, \
+INFO_TABLE_RET(info, entry, bitmap_, srt_, srt_off_, srt_bitmap_, \
type, info_class, entry_class, \
prof_descr, prof_type) \
entry_class(stg_RBH_##entry); \
@@ -129,7 +129,7 @@ INFO_TABLE_RET(info, entry, bitmap_, srt_, srt_off_, srt_len_, \
info_class const StgInfoTable stg_RBH_##info = { \
layout : { bitmap : (StgWord)bitmap_ }, \
PROF_INFO(prof_type, prof_descr) \
- SRT_INFO(RBH,srt_,srt_off_,srt_len_), \
+ SRT_INFO(RBH,srt_,srt_off_,srt_bitmap_), \
INCLUDE_RBH_INFO(info), \
INIT_ENTRY(stg_RBH_##entry) \
}; \
@@ -141,7 +141,7 @@ INFO_TABLE_RET(info, entry, bitmap_, srt_, srt_off_, srt_len_, \
info_class const StgInfoTable info = { \
layout : { bitmap : (StgWord)bitmap_ }, \
PROF_INFO(prof_type, prof_descr) \
- SRT_INFO(type,srt_,srt_off_,srt_len_), \
+ SRT_INFO(type,srt_,srt_off_,srt_bitmap_), \
INCLUDE_RBH_INFO(stg_RBH_##info), \
INIT_ENTRY(entry) \
}
@@ -149,7 +149,7 @@ INFO_TABLE_RET(info, entry, bitmap_, srt_, srt_off_, srt_len_, \
#else
#define \
-INFO_TABLE_RET(info, entry, bitmap_, srt_, srt_off_, srt_len_, \
+INFO_TABLE_RET(info, entry, bitmap_, srt_, srt_off_, srt_bitmap_, \
type_, info_class, entry_class, \
prof_descr, prof_type) \
entry_class(entry); \
@@ -157,7 +157,7 @@ INFO_TABLE_RET(info, entry, bitmap_, srt_, srt_off_, srt_len_, \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
PROF_INFO(prof_type, prof_descr) \
- STD_INFO(srt_len_,type_), \
+ STD_INFO(srt_bitmap_,type_), \
INIT_ENTRY(entry) \
}, \
RET_INFO(srt_,srt_off_) \
@@ -267,7 +267,7 @@ INFO_TABLE_CONSTR(info, entry, ptrs, nptrs, tag_,type_,info_class, \
INIT_ENTRY(entry) \
}
-#define constrTag(con) (get_itbl(con)->srt_len)
+#define constrTag(con) (get_itbl(con)->srt_bitmap)
/* function info table -----------------------------------------------------*/
@@ -275,7 +275,7 @@ INFO_TABLE_CONSTR(info, entry, ptrs, nptrs, tag_,type_,info_class, \
INFO_TABLE_FUN_GEN(info, /* info-table label */ \
entry, /* entry code label */ \
ptrs, nptrs, /* closure layout info */\
- srt_, srt_off_, srt_len_, /* SRT info */ \
+ srt_, srt_off_, srt_bitmap_, /* SRT info */ \
fun_type_, arity_, bitmap_, slow_apply_, \
/* Function info */ \
type_, /* closure type */ \
@@ -286,7 +286,7 @@ INFO_TABLE_FUN_GEN(info, /* info-table label */ \
i : { \
layout : { payload : {ptrs,nptrs} }, \
PROF_INFO(prof_type, prof_descr) \
- STD_INFO(srt_len_,type_), \
+ STD_INFO(srt_bitmap_,type_), \
INIT_ENTRY(entry) \
}, \
srt : (StgSRT *)((StgClosure **)srt_+srt_off_), \
@@ -342,7 +342,7 @@ typedef struct {
StgRetInfoTable i;
} vec_info_8;
-#define VEC_INFO_2(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_2(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2) \
info_class const vec_info_2 info = { \
@@ -350,13 +350,13 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
} \
}
-#define VEC_INFO_3(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_3(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3 \
) \
@@ -365,13 +365,13 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
} \
}
-#define VEC_INFO_4(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_4(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4 \
) \
@@ -380,13 +380,13 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
} \
}
-#define VEC_INFO_5(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_5(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4, \
alt_5 \
@@ -397,13 +397,13 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
} \
}
-#define VEC_INFO_6(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_6(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4, \
alt_5, alt_6 \
@@ -414,13 +414,13 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
} \
}
-#define VEC_INFO_7(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_7(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4, \
alt_5, alt_6, alt_7 \
@@ -431,13 +431,13 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
} \
}
-#define VEC_INFO_8(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_8(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4, \
alt_5, alt_6, alt_7, alt_8 \
@@ -448,7 +448,7 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
} \
@@ -498,20 +498,20 @@ typedef struct {
StgFunPtr vec[8];
} vec_info_8;
-#define VEC_INFO_2(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_2(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2) \
info_class const vec_info_2 info = { \
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
} \
}
-#define VEC_INFO_3(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_3(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3 \
) \
@@ -519,14 +519,14 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
}, \
vec : { alt_1, alt_2, alt_3 } \
}
-#define VEC_INFO_4(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_4(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4 \
) \
@@ -534,14 +534,14 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
}, \
vec : { alt_1, alt_2, alt_3, alt_4 } \
}
-#define VEC_INFO_5(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_5(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4, \
alt_5 \
@@ -550,7 +550,7 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
}, \
@@ -558,7 +558,7 @@ typedef struct {
alt_5 } \
}
-#define VEC_INFO_6(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_6(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4, \
alt_5, alt_6 \
@@ -567,7 +567,7 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
}, \
@@ -575,7 +575,7 @@ typedef struct {
alt_5, alt_6 } \
}
-#define VEC_INFO_7(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_7(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4, \
alt_5, alt_6, alt_7 \
@@ -584,7 +584,7 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
}, \
@@ -592,7 +592,7 @@ typedef struct {
alt_5, alt_6, alt_7 } \
}
-#define VEC_INFO_8(info,bitmap_,srt_,srt_off_,srt_len_, \
+#define VEC_INFO_8(info,bitmap_,srt_,srt_off_,srt_bitmap_, \
type_, info_class, \
alt_1, alt_2, alt_3, alt_4, \
alt_5, alt_6, alt_7, alt_8 \
@@ -601,7 +601,7 @@ typedef struct {
i : { \
i : { \
layout : { bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_,type_) \
+ STD_INFO(srt_bitmap_,type_) \
}, \
RET_INFO(srt_,srt_off_) \
}, \
@@ -620,7 +620,7 @@ typedef vec_info_8 StgPolyInfoTable;
#ifndef TABLES_NEXT_TO_CODE
#define VEC_POLY_INFO_TABLE(nm, bitmap_, \
- srt_, srt_off_, srt_len_, \
+ srt_, srt_off_, srt_bitmap_, \
type_, info_class, entry_class \
) \
info_class const vec_info_8 nm##_info = { \
@@ -628,7 +628,7 @@ typedef vec_info_8 StgPolyInfoTable;
i : { \
layout : { \
bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_, type_), \
+ STD_INFO(srt_bitmap_, type_), \
INIT_ENTRY(nm##_ret) \
}, \
RET_INFO(srt_,srt_off_) \
@@ -647,7 +647,7 @@ typedef vec_info_8 StgPolyInfoTable;
#else
#define VEC_POLY_INFO_TABLE(nm, bitmap_, \
- srt_, srt_off_, srt_len_, \
+ srt_, srt_off_, srt_bitmap_, \
type_, info_class, entry_class \
) \
info_class const vec_info_8 nm##_info = { \
@@ -665,7 +665,7 @@ typedef vec_info_8 StgPolyInfoTable;
i : { \
layout : { \
bitmap : (StgWord)bitmap_ }, \
- STD_INFO(srt_len_, type_), \
+ STD_INFO(srt_bitmap_, type_), \
INIT_ENTRY(nm##_ret) \
}, \
RET_INFO(srt_,srt_off_) \
@@ -677,18 +677,6 @@ typedef vec_info_8 StgPolyInfoTable;
#define SRT(lbl) \
static const StgSRT lbl = {
-#define BITMAP(lbl,size,contents) \
- static const StgLargeBitmap lbl = { size, { contents } };
-
-#if SIZEOF_VOID_P == 8
-#define BITMAP64(first, second) \
- (((StgWord32)(first)) | ((StgWord)(StgWord32)(second) << 32))
-#else
-#define BITMAP64(first, second) first, second
-#endif
-#define BITMAP32(x) ((StgWord32)(x))
-#define COMMA ,
-
/* DLL_SRT_ENTRY is used on the Win32 side when filling initialising
an entry in an SRT table with a reference to a closure that's
living in a DLL. See elsewhere for reasons as to why we need