Changing internal data structures used by Hpc
[ghc-hetmet.git] / includes / Regs.h
index b6e2921..f2f7082 100644 (file)
@@ -111,15 +111,13 @@ 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
-  StgInt          rmp_tmp_w;
+  StgWord         rmp_tmp_w;
   MP_INT          rmp_tmp1;      
   MP_INT          rmp_tmp2;      
   MP_INT          rmp_result1;
   MP_INT          rmp_result2;
   StgWord         rRet;  // holds the return code of the thread
-#if defined(THREADED_RTS) || defined(PAR)
   StgSparkPool    rSparks;     /* per-task spark pool */
-#endif
 } StgRegTable;
 
 #if IN_STG_CODE
@@ -335,7 +333,7 @@ struct PartCapability_ {
 /* No such thing as a MainCapability under THREADED_RTS - each thread must have
  * its own Capability.
  */
-#if IN_STG_CODE && !defined(THREADED_RTS)
+#if IN_STG_CODE && !(defined(THREADED_RTS) && !defined(NOSMP))
 extern W_ MainCapability[];
 #endif
 
@@ -351,7 +349,7 @@ extern W_ MainCapability[];
 GLOBAL_REG_DECL(StgRegTable *,BaseReg,REG_Base)
 #define ASSIGN_BaseReg(e) (BaseReg = (e))
 #else
-#ifdef THREADED_RTS
+#if defined(THREADED_RTS) && !defined(NOSMP)
 #error BaseReg must be in a register for THREADED_RTS
 #endif
 #define BaseReg (&((struct PartCapability_ *)MainCapability)->r)