1 %************************************************************************
3 \section[SMcopying]{Code labels for two-space copying collectors}
5 %************************************************************************
6 Multi-slurp protection:
13 typedef P_ (StgEvacFun)PROTO((P_));
14 typedef P_ (*StgEvacPtr)PROTO((P_));
16 typedef void (StgScavFun)(STG_NO_ARGS);
17 typedef void (*StgScavPtr)(STG_NO_ARGS);
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;
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;
46 extern StgScavFun _Scavenge_1_0;
47 extern StgScavFun _Scavenge_2_0;
48 extern StgScavFun _Scavenge_3_0;
49 extern StgScavFun _Scavenge_4_0;
50 extern StgScavFun _Scavenge_5_0;
52 extern StgScavFun _Scavenge_2_1; /* 1 ptr, 1 non-ptr */
53 extern StgScavFun _Scavenge_3_1; /* 1 ptr, 2 non-ptrs */
54 extern StgScavFun _Scavenge_3_2; /* 2 ptrs, 1 non-ptr */
56 extern StgScavFun _Scavenge_1_1;
57 extern StgScavFun _Scavenge_2_2;
58 extern StgScavFun _Scavenge_3_3;
59 extern StgScavFun _Scavenge_4_4;
60 extern StgScavFun _Scavenge_5_5;
61 extern StgScavFun _Scavenge_6_6;
62 extern StgScavFun _Scavenge_7_7;
63 extern StgScavFun _Scavenge_8_8;
64 extern StgScavFun _Scavenge_9_9;
65 extern StgScavFun _Scavenge_10_10;
66 extern StgScavFun _Scavenge_11_11;
67 extern StgScavFun _Scavenge_12_12;
69 extern StgEvacFun _Evacuate_S;
70 extern StgScavFun _Scavenge_S_N;
72 extern StgEvacFun _Evacuate_Dyn;
73 extern StgScavFun _Scavenge_Dyn;
75 extern StgEvacFun _Evacuate_Tuple;
76 extern StgScavFun _Scavenge_Tuple;
78 extern StgEvacFun _Evacuate_Data;
79 extern StgScavFun _Scavenge_Data;
81 extern StgEvacFun _Evacuate_MuTuple;
82 extern StgScavFun _Scavenge_MuTuple;
85 extern StgEvacFun _Evacuate_RBH_2;
86 extern StgEvacFun _Evacuate_RBH_3;
87 extern StgEvacFun _Evacuate_RBH_4;
88 extern StgEvacFun _Evacuate_RBH_5;
89 extern StgEvacFun _Evacuate_RBH_6;
90 extern StgEvacFun _Evacuate_RBH_7;
91 extern StgEvacFun _Evacuate_RBH_8;
92 extern StgEvacFun _Evacuate_RBH_9;
93 extern StgEvacFun _Evacuate_RBH_10;
94 extern StgEvacFun _Evacuate_RBH_11;
95 extern StgEvacFun _Evacuate_RBH_12;
96 extern StgEvacFun _Evacuate_RBH_S;
97 extern StgEvacFun _Evacuate_FetchMe;
98 extern StgEvacFun _Evacuate_BF;
100 extern StgScavFun _Scavenge_RBH_2_1;
101 extern StgScavFun _Scavenge_RBH_3_1;
102 extern StgScavFun _Scavenge_RBH_3_3;
103 extern StgScavFun _Scavenge_RBH_4_1;
104 extern StgScavFun _Scavenge_RBH_4_4;
105 extern StgScavFun _Scavenge_RBH_5_1;
106 extern StgScavFun _Scavenge_RBH_5_5;
107 extern StgScavFun _Scavenge_RBH_6_6;
108 extern StgScavFun _Scavenge_RBH_7_7;
109 extern StgScavFun _Scavenge_RBH_8_8;
110 extern StgScavFun _Scavenge_RBH_9_9;
111 extern StgScavFun _Scavenge_RBH_10_10;
112 extern StgScavFun _Scavenge_RBH_11_11;
113 extern StgScavFun _Scavenge_RBH_12_12;
114 extern StgScavFun _Scavenge_RBH_N;
115 extern StgScavFun _Scavenge_FetchMe;
116 extern StgScavFun _Scavenge_BF;
118 extern StgEvacFun _Evacuate_MallocPtr;
119 extern StgScavFun _Scavenge_MallocPtr;
122 extern StgEvacFun _Evacuate_BH_N;
123 extern StgScavFun _Scavenge_BH_N;
125 extern StgEvacFun _Evacuate_BH_U;
126 extern StgScavFun _Scavenge_BH_U;
128 extern StgEvacFun _Evacuate_Static;
129 extern StgScavFun _Scavenge_Static;
131 extern StgEvacFun _Evacuate_Ind;
132 extern StgScavFun _Scavenge_Ind;
134 extern StgEvacFun _Evacuate_Caf;
135 extern StgScavFun _Scavenge_Caf;
137 #ifdef USE_COST_CENTRES
138 extern StgEvacFun _Evacuate_PI;
139 extern StgScavFun _Scavenge_PI;
142 extern StgEvacFun _Evacuate_Const;
143 extern StgScavFun _Scavenge_Const;
145 extern StgEvacFun _Evacuate_CharLike;
146 extern StgScavFun _Scavenge_CharLike;
148 extern StgEvacFun _Evacuate_IntLike;
149 extern StgScavFun _Scavenge_IntLike;
152 extern StgEvacFun _Evacuate_BQ;
153 extern StgScavFun _Scavenge_BQ;
155 extern StgEvacFun _Evacuate_TSO;
156 extern StgScavFun _Scavenge_TSO;
158 extern StgEvacFun _Evacuate_StkO;
159 extern StgScavFun _Scavenge_StkO;
165 EXTFUN(Caf_Evac_Upd_entry);
167 EXTFUN(Forward_Ref_New_entry);
168 EXTFUN(Forward_Ref_Old_entry);
169 EXTFUN(OldRoot_Forward_Ref_entry);
171 EXTFUN(Forward_Ref_entry);
176 End of multi-slurp protection:
178 #endif /* SMCOPYING_H */