Some fixes
[mesa.git] / src / mesa / drivers / dri / r300 / r300_fragprog_swz.c
1 /*
2 * Copyright (C) 2005 Jerome Glisse. All Rights Reserved.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
11 *
12 * The above copyright notice and this permission notice (including the
13 * next paragraph) shall be included in all copies or substantial
14 * portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
20 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 *
24 */
25 #include "r300_fragprog.h"
26 #include "r300_reg.h"
27
28
29 #define I0_000 ( (R300_FPI0_OUTC_MAD) | \
30 (R300_FPI0_ARGC_ZERO) | \
31 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG1C_SHIFT) | \
32 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
33 #define I0_111 ( (R300_FPI0_OUTC_MAD) | \
34 (R300_FPI0_ARGC_ZERO) | \
35 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG1C_SHIFT) | \
36 (R300_FPI0_ARGC_ONE << R300_FPI0_ARG2C_SHIFT) )
37 #define I0_XXX ( (R300_FPI0_OUTC_MAD) | \
38 (R300_FPI0_ARGC_SRC0C_XXX) | \
39 (R300_FPI0_ARGC_ONE << R300_FPI0_ARG1C_SHIFT) | \
40 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
41 #define I0_YYY ( (R300_FPI0_OUTC_MAD) | \
42 (R300_FPI0_ARGC_SRC0C_YYY) | \
43 (R300_FPI0_ARGC_ONE << R300_FPI0_ARG1C_SHIFT) | \
44 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
45 #define I0_ZZZ ( (R300_FPI0_OUTC_MAD) | \
46 (R300_FPI0_ARGC_SRC0C_ZZZ) | \
47 (R300_FPI0_ARGC_ONE << R300_FPI0_ARG1C_SHIFT) | \
48 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
49 #define I0_XYZ ( (R300_FPI0_OUTC_MAD) | \
50 (R300_FPI0_ARGC_SRC0C_XYZ) | \
51 (R300_FPI0_ARGC_ONE << R300_FPI0_ARG1C_SHIFT) | \
52 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
53 #define I0_YZX ( (R300_FPI0_OUTC_MAD) | \
54 (R300_FPI0_ARGC_SRC0C_YZX) | \
55 (R300_FPI0_ARGC_ONE << R300_FPI0_ARG1C_SHIFT) | \
56 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
57 #define I0_ZXY ( (R300_FPI0_OUTC_MAD) | \
58 (R300_FPI0_ARGC_SRC0C_ZXY) | \
59 (R300_FPI0_ARGC_ONE << R300_FPI0_ARG1C_SHIFT) | \
60 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
61 #define I0_WZY ( (R300_FPI0_OUTC_MAD) | \
62 (R300_FPI0_ARGC_SRC0CA_WZY) | \
63 (R300_FPI0_ARGC_ONE << R300_FPI0_ARG1C_SHIFT) | \
64 (R300_FPI0_ARGC_ZERO << R300_FPI0_ARG2C_SHIFT) )
65
66 #define IEMPTY 0
67 #define I1_CST R300_FPI1_SRC0C_CONST
68
69 #define I1_XYZ ( R300_FPI1_SRC1C_CONST | \
70 R300_FPI1_SRC2C_CONST | \
71 R300_FPI1_DSTC_REG_X | \
72 R300_FPI1_DSTC_REG_Y | \
73 R300_FPI1_DSTC_REG_Z )
74 #define I1_XY_ ( R300_FPI1_SRC1C_CONST | \
75 R300_FPI1_SRC2C_CONST | \
76 R300_FPI1_DSTC_REG_X | \
77 R300_FPI1_DSTC_REG_Y )
78 #define I1_X_Z ( R300_FPI1_SRC1C_CONST | \
79 R300_FPI1_SRC2C_CONST | \
80 R300_FPI1_DSTC_REG_X | \
81 R300_FPI1_DSTC_REG_Z )
82 #define I1__YZ ( R300_FPI1_SRC1C_CONST | \
83 R300_FPI1_SRC2C_CONST | \
84 R300_FPI1_DSTC_REG_Y | \
85 R300_FPI1_DSTC_REG_Z )
86 #define I1_X__ ( R300_FPI1_SRC1C_CONST | \
87 R300_FPI1_SRC2C_CONST | \
88 R300_FPI1_DSTC_REG_X )
89 #define I1__Y_ ( R300_FPI1_SRC1C_CONST | \
90 R300_FPI1_SRC2C_CONST | \
91 R300_FPI1_DSTC_REG_Y )
92 #define I1___Z ( R300_FPI1_SRC1C_CONST | \
93 R300_FPI1_SRC2C_CONST | \
94 R300_FPI1_DSTC_REG_Z )
95
96 #define SEMPTY {0,{0,0,0,0},{0,0,0,0,0,0,0,0}}
97
98 struct r300_fragment_program_swizzle r300_swizzle [512] = {
99 /* XXX */
100 {1,{0,0,0,0},{ I0_XXX, I1_XYZ,
101 0, 0, 0, 0, 0, 0 } },
102 /* YXX */
103 {2,{0,0,0,0},{ I0_YYY, I1_X__,
104 I0_XXX, I1__YZ,
105 0,0,
106 0,0 } },
107 /* ZXX */
108 {2,{0,0,0,0},{ I0_ZZZ, I1_X__,
109 I0_XXX, I1__YZ,
110 0,0,
111 0,0 } },
112 /* WXX */
113 {2,{0,0,0,0},{ I0_WZY, I1_X__,
114 I0_XXX, I1__YZ,
115 0,0,
116 0,0} },
117 /* 0XX */
118 {2,{0,2,0,0},{ I0_XXX, I1__YZ,
119 I0_000, I1_X__ | I1_CST,
120 0,0,
121 0,0 } },
122 /* 1XX */
123 {2,{0,2,0,0},{ I0_XXX, I1__YZ,
124 I0_111, I1_X__ | I1_CST,
125 0,0,0,0}},
126 SEMPTY,SEMPTY,
127 /* XYX */
128 {2,{0,0,0,0},{ I0_YYY, I1__Y_,
129 I0_XXX, I1_X_Z,
130 0,0,0,0}},
131 /* YYX */
132 {2,{0,0,0,0},{ I0_YYY, I1_XY_,
133 I0_XXX, I1___Z,
134 0,0,0,0}},
135 /* ZYX */
136 {3,{0,0,0,0},{ I0_ZZZ, I1_X__,
137 I0_YYY, I1__Y_,
138 I0_XXX, I1___Z,
139 0,0}},
140 /* WYX */
141 {3,{0,0,0,0},{ I0_WZY, I1_X__,
142 I0_YYY, I1__Y_,
143 I0_XXX, I1___Z,
144 0,0}},
145 /* 0YX */
146 {3,{0,0,2,0},{ I0_YYY, I1__Y_,
147 I0_XXX, I1___Z,
148 I0_000, I1_X__ | I1_CST,
149 0,0}},
150 /* 1YX */
151 {3,{0,0,2,0},{ I0_YYY, I1__Y_,
152 I0_XXX, I1___Z,
153 I0_111, I1_X__ | I1_CST,
154 0,0}},
155 SEMPTY,SEMPTY,
156 /* XZX */
157 {2,{0,0,0,0},{ I0_YZX, I1__YZ,
158 I0_XXX, I1_X__,
159 0,0,0,0}},
160 /* YZX */
161 {1,{0,0,0,0},{ I0_YZX, I1_XYZ,
162 0, 0, 0, 0, 0, 0 } },
163 /* ZZX */
164 {2,{0,0,0,0},{ I0_YZX, I1__YZ,
165 I0_ZZZ, I1_X__,0,0,0,0}},
166 /* WZX */
167 {2,{0,0,0,0},{ I0_WZY, I1__YZ,
168 I0_XXX, I1_X__,0,0,0,0}},
169 /* 0ZX */
170 {2,{0,2,0,0},{ I0_YZX, I1__YZ,
171 I0_000, I1_X__ | I1_CST,
172 0,0,0,0}},
173 /* 1ZX */
174 {2,{0,2,0,0},{ I0_YZX, I1__YZ,
175 I0_111, I1_X__ | I1_CST,
176 0,0,0,0}},
177 SEMPTY,SEMPTY,
178 /* XWX */
179 {3,{0,1,0,0},{ I0_WZY, I1_X__,
180 I0_XXX, I1__Y_,
181 I0_XXX, I1_X_Z,
182 0,0}},
183 /* YWX */
184 {3,{0,1,0,0},{ I0_WZY, I1_X__,
185 I0_XXX, I1__Y_,
186 I0_YZX, I1_X_Z,
187 0,0}},
188 /* ZWX */
189 {4,{0,1,0,0},{ I0_WZY, I1_X__,
190 I0_XXX, I1__Y_,
191 I0_ZZZ, I1_X__,
192 I0_XXX, I1___Z } },
193 /* WWX */
194 {3,{0,1,0,0},{ I0_WZY, I1_X__,
195 I0_XXX, I1_XY_,
196 I0_YZX, I1___Z,
197 0,0}},
198 /* 0WX */
199 {4,{0,1,0,2},{ I0_WZY, I1_X__,
200 I0_XXX, I1__Y_,
201 I0_YZX, I1___Z,
202 I0_000, I1_X__ | I1_CST } },
203 /* 1WX */
204 {4,{0,1,0,2},{ I0_WZY, I1_X__,
205 I0_XXX, I1__Y_,
206 I0_YZX, I1___Z,
207 I0_111, I1_X__ | I1_CST } },
208 SEMPTY,SEMPTY,
209 /* X0X */
210 {2,{0,2,0,0},{ I0_XXX, I1_X_Z,
211 I0_000, I1__Y_ | I1_CST,
212 0,0,0,0}},
213 /* Y0X */
214 {2,{0,2,0,0},{ I0_YZX, I1_X_Z,
215 I0_000, I1__Y_ | I1_CST,
216 0,0,0,0}},
217 /* Z0X */
218 {3,{0,2,0,0},{ I0_XXX, I1___Z,
219 I0_000, I1__Y_ | I1_CST,
220 I0_ZZZ, I1_X__,
221 0,0}},
222 /* W0X */
223 {3,{0,2,0,0},{ I0_XXX, I1___Z,
224 I0_000, I1__Y_ | I1_CST,
225 I0_WZY, I1_X__,
226 0,0}},
227 /* 00X */
228 {2,{0,2,0,0},{ I0_XXX, I1___Z,
229 I0_000, I1_XY_ | I1_CST,
230 0,0,0,0}},
231 /* 10X */
232 {3,{0,2,0,0},{ I0_XXX, I1___Z,
233 I0_000, I1__Y_ | I1_CST,
234 I0_111, I1_X__ | I1_CST,
235 0,0}},
236 SEMPTY,SEMPTY,
237 /* X1X */
238 {2,{0,2,0,0},{ I0_XXX, I1_X_Z,
239 I0_111, I1__Y_ | I1_CST,
240 0,0,0,0}},
241 /* Y1X */
242 {2,{0,2,0,0},{ I0_YZX, I1_X_Z,
243 I0_111, I1__Y_ | I1_CST,
244 0,0,0,0}},
245 /* Z1X */
246 {3,{0,2,0,0},{ I0_XXX, I1___Z,
247 I0_111, I1__Y_ | I1_CST,
248 I0_ZZZ, I1_X__,
249 0,0}},
250 /* W1X */
251 {3,{0,2,0,0},{ I0_XXX, I1___Z,
252 I0_111, I1__Y_ | I1_CST,
253 I0_WZY, I1_X__,
254 0,0}},
255 /* 01X */
256 {3,{0,2,0,0},{ I0_XXX, I1___Z,
257 I0_111, I1__Y_ | I1_CST,
258 I0_000, I1_X__ | I1_CST,
259 0,0}},
260 /* 11X */
261 {2,{0,2,0,0},{ I0_XXX, I1___Z,
262 I0_111, I1_XY_ | I1_CST,
263 0,0,0,0}},
264 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
265 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
266 /* XXY */
267 {2,{0,0,0,0},{ I0_YYY, I1___Z,
268 I0_XXX, I1_XY_,
269 0,0,0,0}},
270 /* YXY */
271 {2,{0,0,0,0},{ I0_YYY, I1_X_Z,
272 I0_XXX, I1__Y_,
273 0,0,0,0}},
274 /* ZXY */
275 {1,{0,0,0,0},{ I0_ZXY, I1_XYZ,
276 0, 0, 0, 0, 0, 0 } },
277 /* WXY */
278 {2,{0,0,0,0},{ I0_WZY, I1_X__,
279 I0_ZXY, I1__YZ,
280 0,0,0,0}},
281 /* 0XY */
282 {2,{0,0,0,0},{ I0_ZXY, I1__YZ,
283 I0_000, I1_X__ | I1_CST,
284 0,0,0,0}},
285 /* 1XY */
286 {2,{0,0,0,0},{ I0_ZXY, I1__YZ,
287 I0_111, I1_X__ | I1_CST,
288 0,0,0,0}},
289 SEMPTY,SEMPTY,
290 /* XYY */
291 {2,{0,0,0,0},{ I0_YYY, I1__YZ,
292 I0_XXX, I1_X__,
293 0,0,0,0}},
294 /* YYY */
295 {1,{0,0,0,0},{ I0_YYY, I1_XYZ,
296 0, 0, 0, 0, 0, 0 } },
297 /* ZYY */
298 {2,{0,0,0,0},{ I0_YYY, I1__YZ,
299 I0_ZZZ, I1_X__,
300 0,0,0,0}},
301 /* WYY */
302 {2,{0,0,0,0},{ I0_YYY, I1__YZ,
303 I0_WZY, I1_X__,
304 0,0,0,0}},
305 /* 0YY */
306 {2,{0,0,0,0},{ I0_YYY, I1__YZ,
307 I0_000, I1_X__ | I1_CST,
308 0,0,0,0}},
309 /* 1YY */
310 {2,{0,0,0,0},{ I0_YYY, I1__YZ,
311 I0_111, I1_X__ | I1_CST,
312 0,0,0,0}},
313 SEMPTY,SEMPTY,
314 /* XZY */
315 {2,{0,0,0,0},{ I0_WZY, I1__YZ,
316 I0_XXX, I1_X__,
317 0,0,0,0}},
318 /* YZY */
319 {2,{0,0,0,0},{ I0_WZY, I1__YZ,
320 I0_YYY, I1_X__,
321 0,0,0,0}},
322 /* ZZY */
323 {2,{0,0,0,0},{ I0_WZY, I1__YZ,
324 I0_ZZZ, I1_X__,
325 0,0,0,0}},
326 /* WZY */
327 {1,{0,0,0,0},{ I0_WZY, I1_XYZ,
328 0, 0, 0, 0, 0, 0 } },
329 /* 0ZY */
330 {2,{0,0,0,0},{ I0_WZY, I1__YZ,
331 I0_000, I1_X__ | I1_CST,
332 0,0,0,0}},
333 /* 1ZY */
334 {2,{0,0,0,0},{ I0_WZY, I1__YZ,
335 I0_111, I1_X__ | I1_CST,
336 0,0,0,0}},
337 SEMPTY,SEMPTY,
338 /* XWY */
339 {4,{0,1,0,0},{ I0_WZY, I1_X__,
340 I0_XXX, I1__Y_,
341 I0_XXX, I1_X__,
342 I0_YYY, I1___Z } },
343 /* YWY */
344 {3,{0,1,0,0},{ I0_WZY, I1_X__,
345 I0_XXX, I1__Y_,
346 I0_YYY, I1_X_Z,
347 0,0}},
348 /* ZWY */
349 {3,{0,1,0,0},{ I0_WZY, I1_X__,
350 I0_XXX, I1__Y_,
351 I0_ZXY, I1_X_Z,
352 0,0}},
353 /* WWY */
354 {3,{0,1,0,0},{ I0_WZY, I1_X__,
355 I0_XXX, I1_XY_,
356 I0_ZXY, I1___Z,
357 0,0}},
358 /* 0WY */
359 {4,{0,1,0,0},{ I0_WZY, I1_X__,
360 I0_XXX, I1__Y_,
361 I0_ZXY, I1___Z,
362 I0_000, I1_X__ | I1_CST } },
363 /* 1WY */
364 {4,{0,1,0,0},{ I0_WZY, I1_X__,
365 I0_XXX, I1__Y_,
366 I0_ZXY, I1___Z,
367 I0_111, I1_X__ | I1_CST } },
368 SEMPTY,SEMPTY,
369 /* X0Y */
370 {3,{0,2,0,0},{ I0_XXX, I1_X__,
371 I0_000, I1__Y_ | I1_CST,
372 I0_YYY, I1___Z,
373 0,0}},
374 /* Y0Y */
375 {2,{0,2,0,0},{ I0_YYY, I1_X_Z,
376 I0_000, I1__Y_ | I1_CST,
377 0,0,0,0}},
378 /* Z0Y */
379 {2,{0,2,0,0},{ I0_ZXY, I1_X_Z,
380 I0_000, I1__Y_ | I1_CST,
381 0,0,0,0}},
382 /* W0Y */
383 {2,{0,2,0,0},{ I0_WZY, I1_X_Z,
384 I0_000, I1__Y_ | I1_CST,
385 0,0,0,0}},
386 /* 00Y */
387 {2,{0,2,0,0},{ I0_YYY, I1___Z,
388 I0_000, I1_XY_ | I1_CST,
389 0,0,0,0}},
390 /* 10Y */
391 {3,{0,2,0,0},{ I0_YYY, I1___Z,
392 I0_000, I1__Y_ | I1_CST,
393 I0_111, I1_X__ | I1_CST,
394 0,0}},
395 SEMPTY,SEMPTY,
396 /* X1Y */
397 {3,{0,2,0,0},{ I0_XXX, I1_X__,
398 I0_111, I1__Y_ | I1_CST,
399 I0_YYY, I1___Z,
400 0,0}},
401 /* Y1Y */
402 {2,{0,2,0,0},{ I0_YYY, I1_X_Z,
403 I0_111, I1__Y_ | I1_CST,
404 0,0,0,0}},
405 /* Z1Y */
406 {2,{0,2,0,0},{ I0_ZXY, I1_X_Z,
407 I0_111, I1__Y_ | I1_CST,
408 0,0,0,0}},
409 /* W1Y */
410 {3,{0,2,0,0},{ I0_WZY, I1_X_Z,
411 I0_111, I1__Y_ | I1_CST,
412 0,0,0,0}},
413 /* 01Y */
414 {3,{0,2,0,0},{ I0_YYY, I1___Z,
415 I0_111, I1__Y_ | I1_CST,
416 I0_000, I1_X__ | I1_CST,
417 0,0}},
418 /* 11Y */
419 {2,{0,2,0,0},{ I0_YYY, I1___Z,
420 I0_111, I1_XY_ | I1_CST,
421 0,0,0,0}},
422 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
423 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
424 /* XXZ */
425 {2,{0,0,0,0},{ I0_XXX, I1_XY_,
426 I0_ZZZ, I1___Z,
427 0,0,0,0}},
428 /* YXZ */
429 {3,{0,0,0,0},{ I0_XXX, I1__Y_,
430 I0_YYY, I1_X__,
431 I0_ZZZ, I1___Z,
432 0,0}},
433 /* ZXZ */
434 {2,{0,0,0,0},{ I0_XXX, I1__Y_,
435 I0_ZZZ, I1_X_Z,
436 0,0,0,0}},
437 /* WXZ */
438 {3,{0,0,0,0},{ I0_XXX, I1__Y_,
439 I0_ZZZ, I1___Z,
440 I0_WZY, I1_X__,
441 0,0}},
442 /* 0XZ */
443 {3,{0,0,2,0},{ I0_XXX, I1__Y_,
444 I0_ZZZ, I1___Z,
445 I0_000, I1_X__ | I1_CST,
446 0,0}},
447 /* 1XZ */
448 {3,{0,0,2,0},{ I0_XXX, I1__Y_,
449 I0_ZZZ, I1___Z,
450 I0_111, I1_X__ | I1_CST,
451 0,0}},
452 SEMPTY,SEMPTY,
453 /* XYZ */
454 {1,{0,0,0,0},{ I0_XYZ, I1_XYZ,
455 0, 0, 0, 0, 0, 0 } },
456 /* YYZ */
457 {2,{0,0,0,0},{ I0_ZZZ, I1___Z,
458 I0_YYY, I1_XY_,
459 0,0,0,0}},
460 /* ZYZ */
461 {2,{0,0,0,0},{ I0_ZZZ, I1_X_Z,
462 I0_YYY, I1__Y_,
463 0,0,0,0}},
464 /* WYZ */
465 {2,{0,0,0,0},{ I0_XYZ, I1__YZ,
466 I0_WZY, I1_X__,
467 0,0,0,0}},
468 /* 0YZ */
469 {2,{0,2,0,0},{ I0_XYZ, I1__YZ,
470 I0_000, I1_X__ | I1_CST,
471 0,0,0,0}},
472 /* 1YZ */
473 {2,{0,2,0,0},{ I0_XYZ, I1__YZ,
474 I0_111, I1_X__ | I1_CST,
475 0,0,0,0}},
476 SEMPTY,SEMPTY,
477 /* XZZ */
478 {2,{0,0,0,0},{ I0_ZZZ, I1__YZ,
479 I0_XXX, I1_X__,
480 0,0,0,0}},
481 /* YZZ */
482 {2,{0,0,0,0},{ I0_ZZZ, I1__YZ,
483 I0_YYY, I1_X__,
484 0,0,0,0}},
485 /* ZZZ */
486 {1,{0,0,0,0},{ I0_ZZZ, I1_XYZ,
487 0, 0, 0, 0, 0, 0 } },
488 /* WZZ */
489 {2,{0,0,0,0},{ I0_ZZZ, I1__YZ,
490 I0_WZY, I1_X__,
491 0,0,0,0}},
492 /* 0ZZ */
493 {2,{0,2,0,0},{ I0_ZZZ, I1__YZ,
494 I0_000, I1_X__ | I1_CST,
495 0,0,0,0}},
496 /* 1ZZ */
497 {2,{0,2,0,0},{ I0_ZZZ, I1__YZ,
498 I0_111, I1_X__ | I1_CST,
499 0,0,0,0}},
500 SEMPTY,SEMPTY,
501 /* XWZ */
502 {3,{0,1,0,0},{ I0_WZY, I1_X__,
503 I0_XXX, I1__Y_,
504 I0_XYZ, I1_X_Z,
505 0,0}},
506 /* YWZ */
507 {4,{0,1,0,0},{ I0_WZY, I1_X__,
508 I0_XXX, I1__Y_,
509 I0_YYY, I1_X__,
510 I0_XYZ, I1___Z } },
511 /* ZWZ */
512 {3,{0,1,0,0},{ I0_WZY, I1_X__,
513 I0_XXX, I1__Y_,
514 I0_ZZZ, I1_X_Z,
515 0,0}},
516 /* WWZ */
517 {3,{0,1,0,0},{ I0_WZY, I1_X__,
518 I0_XXX, I1_XY_,
519 I0_XYZ, I1___Z,
520 0,0}},
521 /* 0WZ */
522 {4,{0,1,0,2},{ I0_WZY, I1_X__,
523 I0_XXX, I1__Y_,
524 I0_XYZ, I1___Z,
525 I0_000, I1_X__ | I1_CST } },
526 /* 1WZ */
527 {4,{0,1,0,2},{ I0_WZY, I1_X__,
528 I0_XXX, I1__Y_,
529 I0_XYZ, I1___Z,
530 I0_111, I1_X__ | I1_CST } },
531 SEMPTY,SEMPTY,
532 /* X0Z */
533 {2,{0,2,0,0},{ I0_XYZ, I1_X_Z,
534 I0_000, I1__Y_ | I1_CST,
535 0,0,0,0}},
536 /* Y0Z */
537 {3,{0,2,0,0},{ I0_ZZZ, I1___Z,
538 I0_000, I1__Y_ | I1_CST,
539 I0_YYY, I1_X__,
540 0,0}},
541 /* Z0Z */
542 {2,{0,2,0,0},{ I0_ZZZ, I1_X_Z,
543 I0_000, I1__Y_ | I1_CST,
544 0,0,0,0}},
545 /* W0Z */
546 {3,{0,2,0,0},{ I0_ZZZ, I1___Z,
547 I0_000, I1__Y_ | I1_CST,
548 I0_WZY, I1_X__,
549 0,0}},
550 /* 00Z */
551 {2,{0,2,0,0},{ I0_ZZZ, I1___Z,
552 I0_000, I1_XY_ | I1_CST,
553 0,0,0,0}},
554 /* 10Z */
555 {3,{0,2,2,0},{ I0_ZZZ, I1___Z,
556 I0_000, I1__Y_ | I1_CST,
557 I0_111, I1_X__ | I1_CST,
558 0,0}},
559 SEMPTY,SEMPTY,
560 /* X1Z */
561 {2,{0,2,0,0},{ I0_XYZ, I1_X_Z,
562 I0_111, I1__Y_ | I1_CST,
563 0,0,0,0}},
564 /* Y1Z */
565 {3,{0,2,0,0},{ I0_ZZZ, I1___Z,
566 I0_111, I1__Y_ | I1_CST,
567 I0_YYY, I1_X__,
568 0,0}},
569 /* Z1Z */
570 {2,{0,2,0,0},{ I0_ZZZ, I1_X_Z,
571 I0_111, I1__Y_ | I1_CST,
572 0,0,0,0}},
573 /* W1Z */
574 {3,{0,2,0,0},{ I0_ZZZ, I1___Z,
575 I0_111, I1__Y_ | I1_CST,
576 I0_WZY, I1_X__,
577 0,0}},
578 /* 01Z */
579 {3,{0,2,2,0},{ I0_ZZZ, I1___Z,
580 I0_111, I1__Y_ | I1_CST,
581 I0_000, I1_X__ | I1_CST,
582 0,0}},
583 /* 11Z */
584 {2,{0,2,0,0},{ I0_ZZZ, I1___Z,
585 I0_111, I1_XY_ | I1_CST,
586 0,0,0,0}},
587 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
588 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
589 /* XXW */
590 {3,{0,1,0,0},{ I0_WZY, I1_X__,
591 I0_XXX, I1___Z,
592 I0_XXX, I1_XY_,
593 0,0}},
594 /* YXW */
595 {4,{0,1,0,0},{ I0_WZY, I1_X__,
596 I0_XXX, I1___Z,
597 I0_XXX, I1__Y_,
598 I0_YYY, I1_X__ } },
599 /* ZXW */
600 {3,{0,1,0,0},{ I0_WZY, I1_X__,
601 I0_XXX, I1___Z,
602 I0_ZXY, I1_XY_,
603 0,0}},
604 /* WXW */
605 {3,{0,1,0,0},{ I0_WZY, I1_X__,
606 I0_XXX, I1_X_Z,
607 I0_XXX, I1__Y_,
608 0,0}},
609 /* 0XW */
610 {4,{0,1,0,2},{ I0_WZY, I1_X__,
611 I0_XXX, I1___Z,
612 I0_XXX, I1__Y_,
613 I0_000, I1_X__ | I1_CST } },
614 /* 1XW */
615 {4,{0,1,0,2},{ I0_WZY, I1_X__,
616 I0_XXX, I1___Z,
617 I0_XXX, I1__Y_,
618 I0_111, I1_X__ | I1_CST } },
619 SEMPTY,SEMPTY,
620 /* XYW */
621 {3,{0,1,0,0},{ I0_WZY, I1_X__,
622 I0_XXX, I1___Z,
623 I0_XYZ, I1_XY_,
624 0,0}},
625 /* YYW */
626 {3,{0,1,0,0},{ I0_WZY, I1_X__,
627 I0_XXX, I1___Z,
628 I0_YYY, I1_XY_,
629 0,0}},
630 /* ZYW */
631 {4,{0,1,0,0},{ I0_WZY, I1_X__,
632 I0_XXX, I1___Z,
633 I0_XYZ, I1__Y_,
634 I0_ZZZ, I1_X__ } },
635 /* WYW */
636 {3,{0,1,0,0},{ I0_WZY, I1_X__,
637 I0_XXX, I1_X_Z,
638 I0_YYY, I1__Y_,
639 0,0}},
640 /* 0YW */
641 {4,{0,1,0,2},{ I0_WZY, I1_X__,
642 I0_XXX, I1___Z,
643 I0_YYY, I1__Y_,
644 I0_000, I1_X__ | I1_CST } },
645 /* 1YW */
646 {4,{0,1,0,2},{ I0_WZY, I1_X__,
647 I0_XXX, I1___Z,
648 I0_YYY, I1__Y_,
649 I0_111, I1_X__ | I1_CST } },
650
651 SEMPTY,SEMPTY,
652 /* XZW */
653 {4,{0,1,0,0},{ I0_WZY, I1_X__,
654 I0_XXX, I1___Z,
655 I0_XYZ, I1_X__,
656 I0_ZZZ, I1__Y_ } },
657 /* YZW */
658 {3,{0,1,0,0},{ I0_WZY, I1_X__,
659 I0_XXX, I1___Z,
660 I0_YZX, I1_XY_,
661 0,0}},
662 /* ZZW */
663 {3,{0,1,0,0},{ I0_WZY, I1_X__,
664 I0_XXX, I1___Z,
665 I0_ZZZ, I1_XY_,
666 0,0}},
667 /* WZW */
668 {3,{0,1,0,0},{ I0_WZY, I1_X__,
669 I0_XXX, I1_X_Z,
670 I0_ZZZ, I1__Y_,
671 0,0}},
672 /* 0ZW */
673 {4,{0,1,0,2},{ I0_WZY, I1_X__,
674 I0_XXX, I1___Z,
675 I0_ZZZ, I1__Y_,
676 I0_000, I1_X__ | I1_CST } },
677 /* 1ZW */
678 {4,{0,1,0,2},{ I0_WZY, I1_X__,
679 I0_XXX, I1___Z,
680 I0_ZZZ, I1__Y_,
681 I0_111, I1_X__ | I1_CST } },
682
683 SEMPTY,SEMPTY,
684 /* XWW */
685 {3,{0,1,0,0},{ I0_WZY, I1_X__,
686 I0_XXX, I1__YZ,
687 I0_XYZ, I1_X__,
688 0,0}},
689 /* YWW */
690 {3,{0,1,0,0},{ I0_WZY, I1_X__,
691 I0_XXX, I1__YZ,
692 I0_YYY, I1_X__,
693 0,0}},
694 /* ZWW */
695 {3,{0,1,0,0},{ I0_WZY, I1_X__,
696 I0_XXX, I1__YZ,
697 I0_ZZZ, I1_X__,
698 0,0}},
699 /* WWW */
700 {2,{0,1,0,0},{ I0_WZY, I1_X__,
701 I0_XXX, I1_XYZ,
702 0,0,0,0}},
703 /* 0WW */
704 {3,{0,1,2,0},{ I0_WZY, I1_X__,
705 I0_XXX, I1__YZ,
706 I0_000, I1_X__ | I1_CST,
707 0,0}},
708 /* 1WW */
709 {3,{0,1,2,0},{ I0_WZY, I1_X__,
710 I0_XXX, I1__YZ,
711 I0_111, I1_X__ | I1_CST,
712 0,0}},
713 SEMPTY,SEMPTY,
714 /* X0W */
715 {4,{0,1,0,2},{ I0_WZY, I1_X__,
716 I0_XXX, I1___Z,
717 I0_XYZ, I1_X__,
718 I0_000, I1__Y_ | I1_CST } },
719 /* Y0W */
720 {4,{0,1,0,2},{ I0_WZY, I1_X__,
721 I0_XXX, I1___Z,
722 I0_YYY, I1_X__,
723 I0_000, I1__Y_ | I1_CST } },
724 /* Z0W */
725 {4,{0,1,0,2},{ I0_WZY, I1_X__,
726 I0_XXX, I1___Z,
727 I0_ZZZ, I1_X__,
728 I0_000, I1__Y_ | I1_CST } },
729 /* 00W */
730 {3,{0,1,0,2},{ I0_WZY, I1_X__,
731 I0_XXX, I1___Z,
732 I0_000, I1_XY_ | I1_CST,
733 0,0}},
734 /* 10W */
735 {4,{0,1,2,2},{ I0_WZY, I1_X__,
736 I0_XXX, I1___Z,
737 I0_111, I1_X__ | I1_CST,
738 I0_000, I1__Y_ | I1_CST } },
739 SEMPTY,SEMPTY,
740 /* X1W */
741 {4,{0,1,0,2},{ I0_WZY, I1_X__,
742 I0_XXX, I1___Z,
743 I0_XYZ, I1_X__,
744 I0_111, I1__Y_ | I1_CST } },
745 /* Y1W */
746 {4,{0,1,0,2},{ I0_WZY, I1_X__,
747 I0_XXX, I1___Z,
748 I0_YYY, I1_X__,
749 I0_111, I1__Y_ | I1_CST } },
750 /* Z1W */
751 {4,{0,1,0,2},{ I0_WZY, I1_X__,
752 I0_XXX, I1___Z,
753 I0_ZZZ, I1_X__,
754 I0_111, I1__Y_ | I1_CST } },
755 /* 01W */
756 {4,{0,1,2,2},{ I0_WZY, I1_X__,
757 I0_XXX, I1___Z,
758 I0_000, I1_X__ | I1_CST,
759 I0_111, I1__Y_ | I1_CST } },
760 /* 11W */
761 {3,{0,1,0,2},{ I0_WZY, I1_X__,
762 I0_XXX, I1___Z,
763 I0_111, I1_XY_ | I1_CST,
764 0,0}},
765 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
766 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
767 /* XX0 */
768 {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
769 I0_XXX, I1_XY_,
770 0,0,0,0}},
771 /* YX0 */
772 {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
773 I0_XXX, I1__Y_,
774 I0_YYY, I1_X__,
775 0,0}},
776 /* ZX0 */
777 {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
778 I0_ZXY, I1_XY_,
779 0,0,0,0}},
780 /* WX0 */
781 {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
782 I0_XXX, I1__Y_,
783 I0_WZY, I1_X__,
784 0,0}},
785 /* 0X0 */
786 {2,{2,0,0,0},{ I0_000, I1_X_Z | I1_CST,
787 I0_XXX, I1__Y_,
788 0,0,0,0}},
789 /* 1X0 */
790 {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
791 I0_XXX, I1__Y_,
792 I0_111, I1_X__ | I1_CST,
793 0,0}},
794 SEMPTY,SEMPTY,
795 /* XY0 */
796 {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
797 I0_XYZ, I1_XY_,
798 0,0,0,0}},
799 /* YY0 */
800 {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
801 I0_YYY, I1_XY_,
802 0,0,0,0}},
803 /* ZY0 */
804 {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
805 I0_ZZZ, I1_X__,
806 I0_YYY, I1__Y_,
807 0,0}},
808 /* WY0 */
809 {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
810 I0_XYZ, I1__Y_,
811 I0_WZY, I1_X__,
812 0,0}},
813 /* 0Y0 */
814 {2,{2,0,0,0},{ I0_000, I1_X_Z | I1_CST,
815 I0_XYZ, I1__Y_,
816 0,0,0,0}},
817 /* 1Y0 */
818 {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
819 I0_XYZ, I1__Y_,
820 I0_111, I1_X__ | I1_CST,
821 0,0}},
822 SEMPTY,SEMPTY,
823 /* XZ0 */
824 {3,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
825 I0_XYZ, I1_X__,
826 I0_ZZZ, I1__Y_,
827 0,0}},
828 /* YZ0 */
829 {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
830 I0_YZX, I1_XY_,
831 0,0,0,0}},
832 /* ZZ0 */
833 {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
834 I0_ZZZ, I1_XY_,
835 0,0,0,0}},
836 /* WZ0 */
837 {2,{2,0,0,0},{ I0_000, I1___Z | I1_CST,
838 I0_WZY, I1_XY_,
839 0,0,0,0}},
840 /* 0Z0 */
841 {2,{2,0,0,0},{ I0_000, I1_X_Z | I1_CST,
842 I0_ZZZ, I1__Y_,
843 0,0,0,0}},
844 /* 1Z0 */
845 {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
846 I0_ZZZ, I1__Y_,
847 I0_111, I1_X__ | I1_CST,
848 0,0}},
849 SEMPTY,SEMPTY,
850 /* XW0 */
851 {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
852 I0_XXX, I1__Y_,
853 I0_000, I1___Z | I1_CST,
854 I0_XYZ, I1_X__ } },
855 /* YW0 */
856 {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
857 I0_XXX, I1__Y_,
858 I0_000, I1___Z | I1_CST,
859 I0_YYY, I1_X__ } },
860 /* ZW0 */
861 {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
862 I0_XXX, I1__Y_,
863 I0_000, I1___Z | I1_CST,
864 I0_ZZZ, I1_X__ } },
865 /* WW0 */
866 {3,{0,1,2,0},{ I0_WZY, I1_XYZ,
867 I0_XXX, I1_XY_,
868 I0_000, I1___Z | I1_CST,
869 0,0}},
870 /* 0W0 */
871 {3,{0,1,2,0},{ I0_WZY, I1_XYZ,
872 I0_XXX, I1__Y_,
873 I0_000, I1_X_Z | I1_CST,
874 0,0}},
875 /* 1W0 */
876 {4,{0,1,2,2},{ I0_WZY, I1_XYZ,
877 I0_XXX, I1__Y_,
878 I0_000, I1___Z | I1_CST,
879 I0_111, I1_X__ | I1_CST } },
880 SEMPTY,SEMPTY,
881 /* X00 */
882 {2,{2,0,0,0},{ I0_000, I1__YZ | I1_CST,
883 I0_XYZ, I1_X__,
884 0,0,0,0}},
885 /* Y00 */
886 {2,{2,0,0,0},{ I0_000, I1__YZ | I1_CST,
887 I0_YYY, I1_X__,
888 0,0,0,0}},
889 /* Z00 */
890 {2,{2,0,0,0},{ I0_000, I1__YZ | I1_CST,
891 I0_ZZZ, I1_X__,
892 0,0,0,0}},
893 /* W00 */
894 {2,{2,0,0,0},{ I0_000, I1__YZ | I1_CST,
895 I0_WZY, I1_X__,
896 0,0,0,0}},
897 /* 000 */
898 {1,{2,0,0,0},{ I0_000, I1_XYZ | I1_CST,
899 0, 0, 0, 0, 0, 0 } },
900 /* 100 */
901 {2,{2,2,0,0},{ I0_000, I1__YZ | I1_CST,
902 I0_111, I1_X__ | I1_CST,
903 0,0,0,0}},
904 SEMPTY,SEMPTY,
905 /* X10 */
906 {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
907 I0_XYZ, I1_X__,
908 I0_111, I1__Y_ | I1_CST,
909 0,0}},
910 /* Y10 */
911 {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
912 I0_YYY, I1_X__,
913 I0_111, I1__Y_ | I1_CST,
914 0,0}},
915 /* Z10 */
916 {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
917 I0_ZZZ, I1_X__,
918 I0_111, I1__Y_ | I1_CST,
919 0,0}},
920 /* W10 */
921 {3,{2,0,2,0},{ I0_000, I1___Z | I1_CST,
922 I0_WZY, I1_X__,
923 I0_111, I1__Y_ | I1_CST,
924 0,0}},
925 /* 010 */
926 {2,{2,2,0,0},{ I0_000, I1_X_Z | I1_CST,
927 I0_111, I1__Y_ | I1_CST,
928 0, 0, 0, 0 } },
929 /* 110 */
930 {2,{2,2,0,0},{ I0_000, I1___Z | I1_CST,
931 I0_111, I1_XY_ | I1_CST,
932 0,0,0,0}},
933 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
934 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
935
936
937
938 /* XX1 */
939 {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
940 I0_XXX, I1_XY_,
941 0,0,0,0}},
942 /* YX1 */
943 {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
944 I0_XXX, I1__Y_,
945 I0_YYY, I1_X__,
946 0,0}},
947 /* ZX1 */
948 {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
949 I0_ZXY, I1_XY_,
950 0,0,0,0}},
951 /* WX1 */
952 {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
953 I0_XXX, I1__Y_,
954 I0_WZY, I1_X__,
955 0,0}},
956 /* 0X1 */
957 {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
958 I0_XXX, I1__Y_,
959 I0_000, I1_X__ | I1_CST,
960 0,0}},
961 /* 1X1 */
962 {2,{2,0,0,0},{ I0_111, I1_X_Z | I1_CST,
963 I0_XXX, I1__Y_,
964 0,0,0,0}},
965 SEMPTY,SEMPTY,
966 /* XY1 */
967 {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
968 I0_XYZ, I1_XY_,
969 0,0,0,0}},
970 /* YY1 */
971 {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
972 I0_YYY, I1_XY_,
973 0,0,0,0}},
974 /* ZY1 */
975 {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
976 I0_ZZZ, I1_X__,
977 I0_YYY, I1__Y_,
978 0,0}},
979 /* WY1 */
980 {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
981 I0_XYZ, I1__Y_,
982 I0_WZY, I1_X__,
983 0,0}},
984 /* 0Y1 */
985 {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
986 I0_XYZ, I1__Y_,
987 I0_000, I1_X__ | I1_CST,
988 0,0}},
989 /* 1Y1 */
990 {2,{2,0,0,0},{ I0_111, I1_X_Z | I1_CST,
991 I0_XYZ, I1__Y_,
992 0,0,0,0}},
993 SEMPTY,SEMPTY,
994 /* XZ1 */
995 {3,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
996 I0_XYZ, I1_X__,
997 I0_ZZZ, I1__Y_,
998 0,0}},
999 /* YZ1 */
1000 {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
1001 I0_YZX, I1_XY_,
1002 0,0,0,0}},
1003 /* ZZ1 */
1004 {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
1005 I0_ZZZ, I1_XY_,
1006 0,0,0,0}},
1007 /* WZ1 */
1008 {2,{2,0,0,0},{ I0_111, I1___Z | I1_CST,
1009 I0_WZY, I1_XY_,
1010 0,0,0,0}},
1011 /* 0Z1 */
1012 {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
1013 I0_ZZZ, I1__Y_,
1014 I0_000, I1_X__ | I1_CST,
1015 0,0}},
1016 /* 1Z1 */
1017 {2,{2,0,0,0},{ I0_111, I1_X_Z | I1_CST,
1018 I0_ZZZ, I1__Y_,
1019 0,0,0,0}},
1020 SEMPTY,SEMPTY,
1021 /* XW1 */
1022 {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
1023 I0_XXX, I1__Y_,
1024 I0_000, I1___Z | I1_CST,
1025 I0_XYZ, I1_X__ } },
1026 /* YW1 */
1027 {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
1028 I0_XXX, I1__Y_,
1029 I0_111, I1___Z | I1_CST,
1030 I0_YYY, I1_X__ } },
1031 /* ZW1 */
1032 {4,{0,1,2,0},{ I0_WZY, I1_XYZ,
1033 I0_XXX, I1__Y_,
1034 I0_111, I1___Z | I1_CST,
1035 I0_ZZZ, I1_X__ } },
1036 /* WW1 */
1037 {3,{0,1,2,0},{ I0_WZY, I1_XYZ,
1038 I0_XXX, I1_XY_,
1039 I0_111, I1___Z | I1_CST,
1040 0,0}},
1041 /* 0W1 */
1042 {4,{0,1,2,2},{ I0_WZY, I1_XYZ,
1043 I0_XXX, I1__Y_,
1044 I0_111, I1___Z | I1_CST,
1045 I0_000, I1_X__ | I1_CST } },
1046 /* 1W1 */
1047 {3,{0,1,2,0},{ I0_WZY, I1_XYZ,
1048 I0_XXX, I1__Y_,
1049 I0_111, I1_X_Z | I1_CST,
1050 0,0}},
1051 SEMPTY,SEMPTY,
1052 /* X01 */
1053 {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
1054 I0_XYZ, I1_X__,
1055 I0_000, I1__Y_ | I1_CST,
1056 0,0}},
1057 /* Y01 */
1058 {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
1059 I0_YYY, I1_X__,
1060 I0_000, I1__Y_ | I1_CST,
1061 0,0}},
1062 /* Z01 */
1063 {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
1064 I0_ZZZ, I1_X__,
1065 I0_000, I1__Y_ | I1_CST,
1066 0,0}},
1067 /* W01 */
1068 {3,{2,0,2,0},{ I0_111, I1___Z | I1_CST,
1069 I0_WZY, I1_X__,
1070 I0_000, I1__Y_ | I1_CST,
1071 0,0}},
1072 /* 001 */
1073 {2,{2,2,0,0},{ I0_111, I1___Z | I1_CST,
1074 I0_000, I1_XY_ | I1_CST,
1075 0,0,0,0}},
1076 /* 101 */
1077 {2,{2,2,0,0},{ I0_111, I1_X_Z | I1_CST,
1078 I0_000, I1__Y_ | I1_CST,
1079 0, 0, 0, 0 } },
1080 SEMPTY,SEMPTY,
1081 /* X11 */
1082 {2,{2,0,0,0},{ I0_111, I1__YZ | I1_CST,
1083 I0_XYZ, I1_X__,
1084 0,0,0,0}},
1085 /* Y11 */
1086 {2,{2,0,0,0},{ I0_111, I1__YZ | I1_CST,
1087 I0_YYY, I1_X__,
1088 0,0,0,0}},
1089 /* Z11 */
1090 {2,{2,0,0,0},{ I0_111, I1__YZ | I1_CST,
1091 I0_ZZZ, I1_X__,
1092 0,0,0,0}},
1093 /* W11 */
1094 {2,{2,0,0,0},{ I0_111, I1__YZ | I1_CST,
1095 I0_WZY, I1_X__,
1096 0,0,0,0}},
1097 /* 011 */
1098 {2,{2,2,0,0},{ I0_111, I1__YZ | I1_CST,
1099 I0_000, I1_X__ | I1_CST,
1100 0,0,0,0}},
1101 /* 111 */
1102 {1,{2,0,0,0},{ I0_111, I1_XYZ | I1_CST,
1103 0, 0, 0, 0, 0, 0 } },
1104 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1105 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1106 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1107 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1108 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1109 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1110 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1111 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1112 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1113 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1114 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1115 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1116 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1117 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,
1118 SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY,SEMPTY
1119 };
1120
1121 /******************************************************************************
1122 * Color source mask table
1123 ******************************************************************************/
1124
1125 #define S_111 R300_FPI0_ARGC_ONE
1126 #define S_000 R300_FPI0_ARGC_ZERO
1127
1128 #define S0XXX R300_FPI0_ARGC_SRC0C_XXX
1129 #define S0YYY R300_FPI0_ARGC_SRC0C_YYY
1130 #define S0ZZZ R300_FPI0_ARGC_SRC0C_ZZZ
1131 #define S0XYZ R300_FPI0_ARGC_SRC0C_XYZ
1132 #define S0ZXY R300_FPI0_ARGC_SRC0C_ZXY
1133 #define S0YZX R300_FPI0_ARGC_SRC0C_YZX
1134 #define S0WZY R300_FPI0_ARGC_SRC0CA_WZY
1135 #define S0WZY R300_FPI0_ARGC_SRC0CA_WZY
1136
1137 #define S1XXX R300_FPI0_ARGC_SRC1C_XXX
1138 #define S1YYY R300_FPI0_ARGC_SRC1C_YYY
1139 #define S1ZZZ R300_FPI0_ARGC_SRC1C_ZZZ
1140 #define S1XYZ R300_FPI0_ARGC_SRC1C_XYZ
1141 #define S1ZXY R300_FPI0_ARGC_SRC1C_ZXY
1142 #define S1YZX R300_FPI0_ARGC_SRC1C_YZX
1143 #define S1WZY R300_FPI0_ARGC_SRC1CA_WZY
1144
1145 #define S2XXX R300_FPI0_ARGC_SRC2C_XXX
1146 #define S2YYY R300_FPI0_ARGC_SRC2C_YYY
1147 #define S2ZZZ R300_FPI0_ARGC_SRC2C_ZZZ
1148 #define S2XYZ R300_FPI0_ARGC_SRC2C_XYZ
1149 #define S2ZXY R300_FPI0_ARGC_SRC2C_ZXY
1150 #define S2YZX R300_FPI0_ARGC_SRC2C_YZX
1151 #define S2WZY R300_FPI0_ARGC_SRC2CA_WZY
1152
1153 #define ntnat 32
1154
1155 const GLuint r300_swz_srcc_mask[3][512] = {
1156 {
1157 S0XXX,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1158 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S0YZX,ntnat,ntnat,
1159 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1160 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1161 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1162 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1163 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S0ZXY,ntnat,ntnat,ntnat,
1164 ntnat,ntnat,ntnat,S0YYY,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1165 ntnat,ntnat,ntnat,S0WZY,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1166 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1167 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1168 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1169 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1170 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S0XYZ,ntnat,ntnat,ntnat,
1171 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S0ZZZ,ntnat,ntnat,ntnat,
1172 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1173 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1174 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1175 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1176 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1177 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1178 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1179 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1180 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1181 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1182 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1183 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1184 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1185 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1186 ntnat,ntnat,S_000,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1187 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1188 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1189 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1190 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1191 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1192 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1193 ntnat,ntnat,ntnat,ntnat,ntnat,S_111,ntnat,ntnat,ntnat,ntnat,
1194 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1195 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1196 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1197 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1198 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1199 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1200 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1201 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1202 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1203 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1204 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1205 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1206 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1207 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1208 ntnat,ntnat
1209 },
1210 {
1211 S1XXX,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1212 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S1YZX,ntnat,ntnat,
1213 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1214 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1215 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1216 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1217 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S1ZXY,ntnat,ntnat,ntnat,
1218 ntnat,ntnat,ntnat,S1YYY,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1219 ntnat,ntnat,ntnat,S1WZY,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1220 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1221 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1222 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1223 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1224 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S1XYZ,ntnat,ntnat,ntnat,
1225 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S1ZZZ,ntnat,ntnat,ntnat,
1226 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1227 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1228 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1229 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1230 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1231 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1232 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1233 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1234 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1235 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1236 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1237 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1238 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1239 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1240 ntnat,ntnat,S_000,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1241 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1242 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1243 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1244 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1245 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1246 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1247 ntnat,ntnat,ntnat,ntnat,ntnat,S_111,ntnat,ntnat,ntnat,ntnat,
1248 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1249 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1250 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1251 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1252 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1253 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1254 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1255 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1256 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1257 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1258 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1259 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1260 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1261 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1262 ntnat,ntnat
1263 },
1264 {
1265 S2XXX,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1266 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S2YZX,ntnat,ntnat,
1267 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1268 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1269 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1270 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1271 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S2ZXY,ntnat,ntnat,ntnat,
1272 ntnat,ntnat,ntnat,S2YYY,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1273 ntnat,ntnat,ntnat,S2WZY,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1274 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1275 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1276 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1277 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1278 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S2XYZ,ntnat,ntnat,ntnat,
1279 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,S2ZZZ,ntnat,ntnat,ntnat,
1280 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1281 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1282 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1283 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1284 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1285 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1286 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1287 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1288 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1289 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1290 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1291 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1292 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1293 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1294 ntnat,ntnat,S_000,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1295 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1296 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1297 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1298 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1299 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1300 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1301 ntnat,ntnat,ntnat,ntnat,ntnat,S_111,ntnat,ntnat,ntnat,ntnat,
1302 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1303 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1304 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1305 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1306 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1307 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1308 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1309 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1310 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1311 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1312 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1313 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1314 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1315 ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,ntnat,
1316 ntnat,ntnat
1317 }
1318 };
1319
1320 /******************************************************************************
1321 * Alpha source mask table
1322 ******************************************************************************/
1323
1324 GLuint r300_swz_srca_mask[3][6] = {
1325 { R300_FPI2_ARGA_SRC0C_X,
1326 R300_FPI2_ARGA_SRC0C_Y,
1327 R300_FPI2_ARGA_SRC0C_Z,
1328 R300_FPI2_ARGA_SRC0A,
1329 R300_FPI2_ARGA_ZERO,
1330 R300_FPI2_ARGA_ONE },
1331 { R300_FPI2_ARGA_SRC1C_X,
1332 R300_FPI2_ARGA_SRC1C_Y,
1333 R300_FPI2_ARGA_SRC1C_Z,
1334 R300_FPI2_ARGA_SRC1A,
1335 R300_FPI2_ARGA_ZERO,
1336 R300_FPI2_ARGA_ONE },
1337 { R300_FPI2_ARGA_SRC2C_X,
1338 R300_FPI2_ARGA_SRC2C_Y,
1339 R300_FPI2_ARGA_SRC2C_Z,
1340 R300_FPI2_ARGA_SRC2A,
1341 R300_FPI2_ARGA_ZERO,
1342 R300_FPI2_ARGA_ONE },
1343 };