/* CurrentRegTable = BaseReg; */
# endif
#endif
+/* Hack!!! slam the current C stack pointer into the reg. table
+ in the event that we need to copy a chunk of the C stack
+ before entering Haskell via a stable pointer (contact
+ <sof> for (gruesome) details!)
+
+ Only save this once.
+
+ ToDo: support this across platforms.
+*/
+#if 0 && defined(CONCURRENT) && defined(i386_TARGET_ARCH)
+ if (CurrentTSO != CurrentTSOinC) {
+ __asm__ volatile (" mov %%esp,%0" : "m=" (CurrentRegTable->rCstkptr));
+ }
+#endif
#ifdef REG_R1
SAVE_R1 = R1;
{
SaveAllStgRegs();
#ifdef CONCURRENT
-# ifdef PAR
+# if defined(PROFILING) || defined(PAR)
TSO_CCC(CurrentTSO) = CCC;
CCC = (CostCentre)STATIC_CC_REF(CC_MAIN);
# endif
StkStubReg = STK_STUB_closure;
#endif
-#ifdef PAR
+#if CONCURRENT
+# if defined(PROFILING) || defined(PAR)
CCC = TSO_CCC(CurrentTSO);
+# endif
#endif
}