/* 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;
SAVE_Dbl2 = DblReg2;
#endif
+#ifdef REG_Lng1
+ SAVE_Lng1 = LngReg1;
+#endif
+
+#ifdef REG_Lng2
+ SAVE_Lng2 = LngReg2;
+#endif
+
#ifdef REG_Tag
SAVE_Tag = TagReg;
#endif
DblReg2 = SAVE_Dbl2;
#endif
+#ifdef REG_Lng1
+ LngReg1 = SAVE_Lng1;
+#endif
+
+#ifdef REG_Lng2
+ LngReg2 = SAVE_Lng2;
+#endif
+
#ifdef REG_Tag
TagReg = SAVE_Tag;
#endif