don't make -ddump-if-trace imply -no-recomp
[ghc-hetmet.git] / includes / Regs.h
index f2f7082..0f974ec 100644 (file)
@@ -22,8 +22,6 @@
 #ifndef REGS_H
 #define REGS_H
 
-#include "gmp.h" // Needs MP_INT definition 
-
 /*
  * Spark pools: used to store pending sparks 
  *  (THREADED_RTS & PARALLEL_HASKELL only)
@@ -73,6 +71,11 @@ typedef union {
     StgTSOPtr      t;
 } StgUnion;
 
+// Urgh.. we don't know the size of an MP_INT here because we haven't
+// #included gmp.h.  We should really autoconf this, but GMP may not
+// be available at ./configure time if we're building it (GMP) locally.
+#define MP_INT_WORDS 3
+
 /* 
  * This is the table that holds shadow-locations for all the STG
  * registers.  The shadow locations are used when:
@@ -111,11 +114,11 @@ typedef struct StgRegTable_ {
   // rmp_tmp1..rmp_result2 are only used in THREADED_RTS builds to
   // avoid per-thread temps in bss, but currently always incldue here
   // so we just run mkDerivedConstants once
-  StgWord         rmp_tmp_w;
-  MP_INT          rmp_tmp1;      
-  MP_INT          rmp_tmp2;      
-  MP_INT          rmp_result1;
-  MP_INT          rmp_result2;
+  StgWord         rmp_tmp_w[MP_INT_WORDS];
+  StgWord         rmp_tmp1[MP_INT_WORDS];
+  StgWord         rmp_tmp2[MP_INT_WORDS];
+  StgWord         rmp_result1[MP_INT_WORDS];
+  StgWord         rmp_result2[MP_INT_WORDS];
   StgWord         rRet;  // holds the return code of the thread
   StgSparkPool    rSparks;     /* per-task spark pool */
 } StgRegTable;