Answer: They're on the heap in a "Stable Pointer Table". (ADR)
\begin{code}
#ifndef CONCURRENT
-# define SM_MAXROOTS 8 /* 8 Vanilla Regs */
+# define SM_MAXROOTS 9 /* 8 Vanilla Regs + stable pointer table*/
#else
# ifndef PAR
# ifdef GRAN
# define SM_MAXROOTS (10 + (MAX_PROC*2) + 2 )
/* unthreaded + hd/tl thread queues + Current/Main TSOs */
# else
-# define SM_MAXROOTS 5 /* See c-as-asm/HpOverflow.lc */
+# define SM_MAXROOTS 6 /* See c-as-asm/HpOverflow.lc */
# endif
# else
# define SM_MAXROOTS 6 /* See c-as-asm/HpOverflow.lc */
in the info-table.
\begin{code}
-#if defined(GC2s)
-#define _INFO_COPYING
-#else
-#if defined(GC1s)
+#if defined(GCdu) || defined (GCap) || defined (GCgn)
+#define _INFO_COPYING
#define _INFO_COMPACTING
#define _INFO_MARKING
-
#else
-#if defined(GCdu) || defined (GCap) || defined (GCgn)
+#if defined(GC2s)
#define _INFO_COPYING
+
+#else
+#if defined(GC1s)
#define _INFO_COMPACTING
#define _INFO_MARKING
-
#else
/* NO_INFO_SPECIFIED (ToDo: an #error ?) */
#endif