[project @ 1998-11-26 09:17:22 by sof]
[ghc-hetmet.git] / ghc / runtime / main / SMRep.lc
1 %
2 % (c) The AQUA Project, Glasgow University, 1994
3 %
4
5 % Guilty party: BOS
6
7 %************************************************************************
8 %*                                                                      *
9 \section[Rep.lc]{Global rep tables}
10 %*                                                                      *
11 %************************************************************************
12
13 These are the single, global static instances of each rep table type.
14
15 \begin{code}
16 #define COMPILING_REP_LC
17
18 #include "rtsdefs.h"
19 #include "../storage/SMinternal.h"
20
21 #ifdef aix_TARGET_OS /* AIX gives link errors with consts in this file (RO assembler section) */
22 #define const /* */
23 #endif
24
25 EXTFUN(_PRIn_0);
26 EXTFUN(_PRIn_1);
27 EXTFUN(_PRIn_2);
28 EXTFUN(_PRIn_3);
29 EXTFUN(_PRIn_4);
30 EXTFUN(_PRIn_5);
31 EXTFUN(_PRIn_6);
32 EXTFUN(_PRIn_7);
33 EXTFUN(_PRIn_8);
34 EXTFUN(_PRIn_9);
35 EXTFUN(_PRIn_10);
36 EXTFUN(_PRIn_11);
37 EXTFUN(_PRIn_12);
38
39 /* SPEC_x_RTBL(size,ptrs) */
40
41 SPEC_N_RTBL(1,0);
42 SPEC_N_RTBL(1,1);
43 SPEC_N_RTBL(2,0);
44 SPEC_N_RTBL(2,1);
45 SPEC_N_RTBL(2,2);
46 SPEC_N_RTBL(3,0);
47 SPEC_N_RTBL(3,1);
48 SPEC_N_RTBL(3,2);
49 SPEC_N_RTBL(3,3);
50 SPEC_N_RTBL(4,0);
51 SPEC_N_RTBL(4,4);
52 SPEC_N_RTBL(5,0);
53 SPEC_N_RTBL(5,5);
54 SPEC_N_RTBL(6,6);
55 SPEC_N_RTBL(7,7);
56 SPEC_N_RTBL(8,8);
57 SPEC_N_RTBL(9,9);
58 SPEC_N_RTBL(10,10);
59 SPEC_N_RTBL(11,11);
60 SPEC_N_RTBL(12,12);
61
62 SPEC_S_RTBL(1,0);
63 SPEC_S_RTBL(1,1);
64 SPEC_S_RTBL(2,0);
65 SPEC_S_RTBL(2,1);
66 SPEC_S_RTBL(2,2);
67 SPEC_S_RTBL(3,0);
68 SPEC_S_RTBL(3,1);
69 SPEC_S_RTBL(3,2);
70 SPEC_S_RTBL(3,3);
71 SPEC_S_RTBL(4,0);
72 SPEC_S_RTBL(4,4);
73 SPEC_S_RTBL(5,0);
74 SPEC_S_RTBL(5,5);
75 SPEC_S_RTBL(6,6);
76 SPEC_S_RTBL(7,7);
77 SPEC_S_RTBL(8,8);
78 SPEC_S_RTBL(9,9);
79 SPEC_S_RTBL(10,10);
80 SPEC_S_RTBL(11,11);
81 SPEC_S_RTBL(12,12);
82
83 SPEC_U_RTBL(1,0);
84 SPEC_U_RTBL(1,1);
85 SPEC_U_RTBL(2,0);
86 SPEC_U_RTBL(2,1);
87 SPEC_U_RTBL(2,2);
88 SPEC_U_RTBL(3,0);
89 SPEC_U_RTBL(3,1);
90 SPEC_U_RTBL(3,2);
91 SPEC_U_RTBL(3,3);
92 SPEC_U_RTBL(4,0);
93 SPEC_U_RTBL(4,4);
94 SPEC_U_RTBL(5,0);
95 SPEC_U_RTBL(5,5);
96 SPEC_U_RTBL(6,6);
97 SPEC_U_RTBL(7,7);
98 SPEC_U_RTBL(8,8);
99 SPEC_U_RTBL(9,9);
100 SPEC_U_RTBL(10,10);
101 SPEC_U_RTBL(11,11);
102 SPEC_U_RTBL(12,12);
103
104 /* SELECT_RTBL(size,ptrs,select_word_i) */
105
106 SELECT_RTBL(2,1,0);
107 SELECT_RTBL(2,1,1);
108 SELECT_RTBL(2,1,2);
109 SELECT_RTBL(2,1,3);
110 SELECT_RTBL(2,1,4);
111 SELECT_RTBL(2,1,5);
112 SELECT_RTBL(2,1,6);
113 SELECT_RTBL(2,1,7);
114 SELECT_RTBL(2,1,8);
115 SELECT_RTBL(2,1,9);
116 SELECT_RTBL(2,1,10);
117 SELECT_RTBL(2,1,11);
118 SELECT_RTBL(2,1,12);
119
120 GEN_N_RTBL();
121 GEN_S_RTBL();
122 GEN_U_RTBL();
123 DYN_RTBL();
124 TUPLE_RTBL();
125 DATA_RTBL();
126 MUTUPLE_RTBL();
127 IMMUTUPLE_RTBL();
128 STATIC_RTBL();
129
130 #if !defined(PAR) /* && !defined(GRAN) */
131 ForeignObj_RTBL();
132 #endif
133
134 BH_RTBL(N);
135 BH_RTBL(U);
136
137 IND_RTBL();
138 PERM_IND_RTBL();
139 CAF_RTBL();
140 CONST_RTBL();
141 CHARLIKE_RTBL();
142 INTLIKE_RTBL();
143
144 CAF_EVAC_UPD_RTBL();
145
146 #ifdef GCgn
147 FORWARDREF_RTBL(_Evacuate_Old_Forward_Ref);
148 FORWARDREF_RTBL(_Evacuate_New_Forward_Ref);
149 FORWARDREF_RTBL(_Evacuate_OldRoot_Forward);
150 #endif
151 FORWARDREF_RTBL(_Evacuate_Forward_Ref);
152
153 #ifdef _INFO_MARKING
154 DUMMY_PRRETURN_RTBL(_PRMarking_MarkNextRoot,_Dummy_PRReturn_entry);
155 DUMMY_PRRETURN_RTBL(_PRMarking_MarkNextCAF,_Dummy_PRReturn_entry);
156 # ifdef CONCURRENT
157 DUMMY_PRRETURN_RTBL(_PRMarking_MarkNextSpark,_Dummy_PRReturn_entry);
158 # endif
159 # if defined(GRAN)
160 DUMMY_PRRETURN_RTBL(_PRMarking_MarkNextEvent,_Dummy_PRReturn_entry);
161 DUMMY_PRRETURN_RTBL(_PRMarking_MarkNextClosureInFetchBuffer,_Dummy_PRReturn_entry);
162 # endif
163 # ifdef PAR
164 DUMMY_PRRETURN_RTBL(_PRMarking_MarkNextGA,_Dummy_PRReturn_entry);
165 # else
166 #  if 1 /* !defined(CONCURRENT) */ /* HWL */
167 DUMMY_PRRETURN_RTBL(_PRMarking_MarkNextAStack,_Dummy_PRReturn_entry);
168 DUMMY_PRRETURN_RTBL(_PRMarking_MarkNextBStack,_Dummy_PRReturn_entry);
169 #  endif
170 # endif
171 #endif
172
173 #ifdef GCgn
174 OLDROOT_RTBL();
175 #endif
176
177 #ifdef CONCURRENT
178 TSO_RTBL();
179 STKO_RTBL();
180 BQ_RTBL();
181 # ifndef PAR
182 STKO_STATIC_RTBL();
183 # else
184 FETCHME_RTBL();
185 FMBQ_RTBL();
186 BF_RTBL();
187 # endif
188 #endif
189
190 #if defined(PAR) || defined(GRAN)
191 SPEC_RBH_RTBL(2,0);
192 SPEC_RBH_RTBL(2,1);
193 SPEC_RBH_RTBL(2,2);
194 SPEC_RBH_RTBL(3,0);
195 SPEC_RBH_RTBL(3,1);
196 SPEC_RBH_RTBL(3,2);
197 SPEC_RBH_RTBL(3,3);
198 SPEC_RBH_RTBL(4,0);
199 SPEC_RBH_RTBL(4,4);
200 SPEC_RBH_RTBL(5,0);
201 SPEC_RBH_RTBL(5,5);
202 SPEC_RBH_RTBL(6,6);
203 SPEC_RBH_RTBL(7,7);
204 SPEC_RBH_RTBL(8,8);
205 SPEC_RBH_RTBL(9,9);
206 SPEC_RBH_RTBL(10,10);
207 SPEC_RBH_RTBL(11,11);
208 SPEC_RBH_RTBL(12,12);
209
210 GEN_RBH_RTBL();
211 #endif
212
213
214 \end{code}