[project @ 2002-05-23 15:37:32 by simonpj]
[ghc-hetmet.git] / ghc / includes / InfoMacros.h
index 6ae87f1..b181ce5 100644 (file)
@@ -1,5 +1,5 @@
 /* ----------------------------------------------------------------------------
- * $Id: InfoMacros.h,v 1.15 2001/07/23 23:14:58 ken Exp $
+ * $Id: InfoMacros.h,v 1.18 2002/02/26 05:03:27 sof Exp $
  * 
  * (c) The GHC Team, 1998-1999
  *
@@ -35,8 +35,9 @@
 #define PROF_INFO(type_str, desc_str)
 #endif
 
+/* Why no empty array initializer in the 'else' branch? sof 2/02 */
 #ifdef USE_MINIINTERPRETER
-#define INIT_VECTOR {}
+#define INIT_VECTOR vector : {}
 #else
 #define INIT_VECTOR
 #endif
@@ -617,8 +618,20 @@ typedef vec_info_8 StgPolyInfoTable;
 #define SRT(lbl) \
   static const StgSRT lbl = {
 
-#define BITMAP(lbl,size) \
-  static const StgLargeBitmap lbl = { size, {
+#define BITMAP(lbl,size,contents) \
+  static const StgLargeBitmap lbl = { \
+      (size*4+SIZEOF_VOID_P-1)/SIZEOF_VOID_P, { contents } };
+
+#if SIZEOF_VOID_P == 8
+#define BITMAP_SWITCH64(small, large)  small
+#define BITMAP64(first, second)                \
+  (((StgWord32)(first)) | ((StgWord)(StgWord32)(second) << 32))
+#else
+#define BITMAP_SWITCH64(small, large)  large
+#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