[project @ 1998-11-26 09:17:22 by sof]
[ghc-hetmet.git] / ghc / includes / SMcopying.lh
1 %************************************************************************
2 %*                                                                      *
3 \section[SMcopying]{Code labels for two-space copying collectors}
4 %*                                                                      *
5 %************************************************************************
6 Multi-slurp protection:
7 \begin{code}
8 #ifndef SMCOPYING_H
9 #define SMCOPYING_H
10 \end{code}
11
12 \begin{code}
13 typedef P_ (StgEvacFun)PROTO((P_));
14 typedef P_ (*StgEvacPtr)PROTO((P_));
15
16 typedef void (StgScavFun)(STG_NO_ARGS);
17 typedef void (*StgScavPtr)(STG_NO_ARGS);
18
19 extern StgEvacFun _Evacuate_1;
20 extern StgEvacFun _Evacuate_2;
21 extern StgEvacFun _Evacuate_3;
22 extern StgEvacFun _Evacuate_4;
23 extern StgEvacFun _Evacuate_5;
24 extern StgEvacFun _Evacuate_6;
25 extern StgEvacFun _Evacuate_7;
26 extern StgEvacFun _Evacuate_8;
27 extern StgEvacFun _Evacuate_9;
28 extern StgEvacFun _Evacuate_10;
29 extern StgEvacFun _Evacuate_11;
30 extern StgEvacFun _Evacuate_12;
31
32 extern StgEvacFun _EvacuateSelector_0; /* 0-origin */
33 extern StgEvacFun _EvacuateSelector_1;
34 extern StgEvacFun _EvacuateSelector_2;
35 extern StgEvacFun _EvacuateSelector_3;
36 extern StgEvacFun _EvacuateSelector_4;
37 extern StgEvacFun _EvacuateSelector_5;
38 extern StgEvacFun _EvacuateSelector_6;
39 extern StgEvacFun _EvacuateSelector_7;
40 extern StgEvacFun _EvacuateSelector_8;
41 extern StgEvacFun _EvacuateSelector_9;
42 extern StgEvacFun _EvacuateSelector_10;
43 extern StgEvacFun _EvacuateSelector_11;
44 extern StgEvacFun _EvacuateSelector_12;
45
46 #ifdef TICKY_TICKY
47 extern StgScavFun _Scavenge_0_0;
48 #endif
49 extern StgScavFun _Scavenge_1_0;
50 extern StgScavFun _Scavenge_2_0;
51 extern StgScavFun _Scavenge_3_0;
52 extern StgScavFun _Scavenge_4_0;
53 extern StgScavFun _Scavenge_5_0;
54
55 extern StgScavFun _Scavenge_2_1; /* 1 ptr,  1 non-ptr  */
56 extern StgScavFun _Scavenge_3_1; /* 1 ptr,  2 non-ptrs */
57 extern StgScavFun _Scavenge_3_2; /* 2 ptrs, 1 non-ptr  */
58
59 extern StgScavFun _Scavenge_1_1;
60 extern StgScavFun _Scavenge_2_2;
61 extern StgScavFun _Scavenge_3_3;
62 extern StgScavFun _Scavenge_4_4;
63 extern StgScavFun _Scavenge_5_5;
64 extern StgScavFun _Scavenge_6_6;
65 extern StgScavFun _Scavenge_7_7;
66 extern StgScavFun _Scavenge_8_8;
67 extern StgScavFun _Scavenge_9_9;
68 extern StgScavFun _Scavenge_10_10;
69 extern StgScavFun _Scavenge_11_11;
70 extern StgScavFun _Scavenge_12_12;
71
72 extern StgEvacFun _Evacuate_S;
73 extern StgScavFun _Scavenge_S_N;
74
75 extern StgEvacFun _Evacuate_Dyn;
76 extern StgScavFun _Scavenge_Dyn;
77
78 extern StgEvacFun _Evacuate_Tuple;
79 extern StgScavFun _Scavenge_Tuple;
80
81 extern StgEvacFun _Evacuate_Data;
82 extern StgScavFun _Scavenge_Data;
83
84 extern StgEvacFun _Evacuate_MuTuple;
85 extern StgScavFun _Scavenge_MuTuple;
86
87 #if defined(PAR) || defined(GRAN)
88 extern StgEvacFun _Evacuate_RBH_2;
89 extern StgEvacFun _Evacuate_RBH_3;
90 extern StgEvacFun _Evacuate_RBH_4;
91 extern StgEvacFun _Evacuate_RBH_5;
92 extern StgEvacFun _Evacuate_RBH_6;
93 extern StgEvacFun _Evacuate_RBH_7;
94 extern StgEvacFun _Evacuate_RBH_8;
95 extern StgEvacFun _Evacuate_RBH_9;
96 extern StgEvacFun _Evacuate_RBH_10;
97 extern StgEvacFun _Evacuate_RBH_11;
98 extern StgEvacFun _Evacuate_RBH_12;
99 extern StgEvacFun _Evacuate_RBH_S;
100 extern StgEvacFun _Evacuate_FetchMe;
101 extern StgEvacFun _Evacuate_BF;
102
103 extern StgScavFun _Scavenge_RBH_2_1;
104 extern StgScavFun _Scavenge_RBH_3_1;
105 extern StgScavFun _Scavenge_RBH_3_3;
106 extern StgScavFun _Scavenge_RBH_4_1;
107 extern StgScavFun _Scavenge_RBH_4_4;
108 extern StgScavFun _Scavenge_RBH_5_1;
109 extern StgScavFun _Scavenge_RBH_5_5;
110 extern StgScavFun _Scavenge_RBH_6_6;
111 extern StgScavFun _Scavenge_RBH_7_7;
112 extern StgScavFun _Scavenge_RBH_8_8;
113 extern StgScavFun _Scavenge_RBH_9_9;
114 extern StgScavFun _Scavenge_RBH_10_10;
115 extern StgScavFun _Scavenge_RBH_11_11;
116 extern StgScavFun _Scavenge_RBH_12_12;
117 extern StgScavFun _Scavenge_RBH_N;
118 extern StgScavFun _Scavenge_FetchMe;
119 extern StgScavFun _Scavenge_BF;
120 #endif /* PAR || GRAN */
121
122 #if !defined(PAR) || defined(GRAN)
123 extern StgEvacFun _Evacuate_ForeignObj;
124 extern StgScavFun _Scavenge_ForeignObj;
125 #endif /* PAR */
126
127
128 extern StgEvacFun _Evacuate_BH_N;
129 extern StgScavFun _Scavenge_BH_N;
130
131 extern StgEvacFun _Evacuate_BH_U;
132 extern StgScavFun _Scavenge_BH_U;
133
134 extern StgEvacFun _Evacuate_Static;
135
136 extern StgEvacFun _Evacuate_Ind;
137 extern StgScavFun _Scavenge_Ind;
138
139 extern StgEvacFun _Evacuate_Caf;
140 extern StgScavFun _Scavenge_Caf;
141
142 #if defined(PROFILING) || defined(TICKY_TICKY)
143 extern StgEvacFun _Evacuate_PI;
144 extern StgScavFun _Scavenge_PI;
145 #endif
146
147 extern StgEvacFun _Evacuate_Const;
148
149 extern StgEvacFun _Evacuate_CharLike;
150
151 extern StgEvacFun _Evacuate_IntLike;
152
153 #ifdef CONCURRENT
154 extern StgEvacFun _Evacuate_BQ;
155 extern StgScavFun _Scavenge_BQ;
156
157 extern StgEvacFun _Evacuate_TSO;
158 extern StgScavFun _Scavenge_TSO;
159
160 extern StgEvacFun _Evacuate_StkO;
161 extern StgScavFun _Scavenge_StkO;
162 #endif
163 \end{code}
164
165 \begin{code}
166 EXTFUN(Caf_Evac_Upd_entry);
167 #if defined(GCgn)
168 EXTFUN(Forward_Ref_New_entry);
169 EXTFUN(Forward_Ref_Old_entry);
170 EXTFUN(OldRoot_Forward_Ref_entry);
171 #else
172 EXTFUN(Forward_Ref_entry);
173 #endif
174
175 \end{code}
176
177 End of multi-slurp protection:
178 \begin{code}
179 #endif /* SMCOPYING_H */
180 \end{code}