4b452fd5e3af59625a5914fd508ceb026fee1270
[mesa.git] / src / mesa / sparc / sparc_matrix.h
1 /* $Id: sparc_matrix.h,v 1.1 2001/05/23 14:27:03 brianp Exp $ */
2
3 #define M0 %f16
4 #define M1 %f17
5 #define M2 %f18
6 #define M3 %f19
7 #define M4 %f20
8 #define M5 %f21
9 #define M6 %f22
10 #define M7 %f23
11 #define M8 %f24
12 #define M9 %f25
13 #define M10 %f26
14 #define M11 %f27
15 #define M12 %f28
16 #define M13 %f29
17 #define M14 %f30
18 #define M15 %f31
19
20 /* Seems to work, disable if unaligned traps begin to appear... -DaveM */
21 #define USE_LD_DOUBLE
22
23 #ifndef USE_LD_DOUBLE
24
25 #define LDMATRIX_0_1_2_3_12_13_14_15(BASE) \
26 ld [BASE + ( 0 * 0x4)], M0; \
27 ld [BASE + ( 1 * 0x4)], M1; \
28 ld [BASE + ( 2 * 0x4)], M2; \
29 ld [BASE + ( 3 * 0x4)], M3; \
30 ld [BASE + (12 * 0x4)], M12; \
31 ld [BASE + (13 * 0x4)], M13; \
32 ld [BASE + (14 * 0x4)], M14; \
33 ld [BASE + (15 * 0x4)], M15
34
35 #define LDMATRIX_0_1_12_13(BASE) \
36 ld [BASE + ( 0 * 0x4)], M0; \
37 ld [BASE + ( 1 * 0x4)], M1; \
38 ld [BASE + (12 * 0x4)], M12; \
39 ld [BASE + (13 * 0x4)], M13
40
41 #define LDMATRIX_0_12_13(BASE) \
42 ld [BASE + ( 0 * 0x4)], M0; \
43 ld [BASE + (12 * 0x4)], M12; \
44 ld [BASE + (13 * 0x4)], M13
45
46 #define LDMATRIX_0_1_2_12_13_14(BASE) \
47 ld [BASE + ( 0 * 0x4)], M0; \
48 ld [BASE + ( 1 * 0x4)], M1; \
49 ld [BASE + ( 2 * 0x4)], M2; \
50 ld [BASE + (12 * 0x4)], M12; \
51 ld [BASE + (13 * 0x4)], M13; \
52 ld [BASE + (14 * 0x4)], M14
53
54 #define LDMATRIX_0_12_13_14(BASE) \
55 ld [BASE + ( 0 * 0x4)], M0; \
56 ld [BASE + (12 * 0x4)], M12; \
57 ld [BASE + (13 * 0x4)], M13; \
58 ld [BASE + (14 * 0x4)], M14
59
60 #define LDMATRIX_0_14(BASE) \
61 ld [BASE + ( 0 * 0x4)], M0; \
62 ld [BASE + (14 * 0x4)], M14
63
64 #define LDMATRIX_0_1_2_3_4_5_6_7_12_13_14_15(BASE) \
65 ld [BASE + ( 0 * 0x4)], M0; \
66 ld [BASE + ( 1 * 0x4)], M1; \
67 ld [BASE + ( 2 * 0x4)], M2; \
68 ld [BASE + ( 3 * 0x4)], M3; \
69 ld [BASE + ( 4 * 0x4)], M4; \
70 ld [BASE + ( 5 * 0x4)], M5; \
71 ld [BASE + ( 6 * 0x4)], M6; \
72 ld [BASE + ( 7 * 0x4)], M7; \
73 ld [BASE + (12 * 0x4)], M12; \
74 ld [BASE + (13 * 0x4)], M13; \
75 ld [BASE + (14 * 0x4)], M14; \
76 ld [BASE + (15 * 0x4)], M15
77
78 #define LDMATRIX_0_1_4_5_12_13(BASE) \
79 ld [BASE + ( 0 * 0x4)], M0; \
80 ld [BASE + ( 1 * 0x4)], M1; \
81 ld [BASE + ( 4 * 0x4)], M4; \
82 ld [BASE + ( 5 * 0x4)], M5; \
83 ld [BASE + (12 * 0x4)], M12; \
84 ld [BASE + (13 * 0x4)], M13
85
86 #define LDMATRIX_0_5_12_13(BASE) \
87 ld [BASE + ( 0 * 0x4)], M0; \
88 ld [BASE + ( 5 * 0x4)], M5; \
89 ld [BASE + (12 * 0x4)], M12; \
90 ld [BASE + (13 * 0x4)], M13
91
92 #define LDMATRIX_0_1_2_3_4_5_6_12_13_14(BASE) \
93 ld [BASE + ( 0 * 0x4)], M0; \
94 ld [BASE + ( 1 * 0x4)], M1; \
95 ld [BASE + ( 2 * 0x4)], M2; \
96 ld [BASE + ( 3 * 0x4)], M3; \
97 ld [BASE + ( 4 * 0x4)], M4; \
98 ld [BASE + ( 5 * 0x4)], M5; \
99 ld [BASE + ( 6 * 0x4)], M6; \
100 ld [BASE + (12 * 0x4)], M12; \
101 ld [BASE + (13 * 0x4)], M13; \
102 ld [BASE + (14 * 0x4)], M14
103
104 #define LDMATRIX_0_5_12_13_14(BASE) \
105 ld [BASE + ( 0 * 0x4)], M0; \
106 ld [BASE + ( 5 * 0x4)], M5; \
107 ld [BASE + (12 * 0x4)], M12; \
108 ld [BASE + (13 * 0x4)], M13; \
109 ld [BASE + (14 * 0x4)], M14
110
111 #define LDMATRIX_0_5_14(BASE) \
112 ld [BASE + ( 0 * 0x4)], M0; \
113 ld [BASE + ( 5 * 0x4)], M5; \
114 ld [BASE + (14 * 0x4)], M14
115
116 #define LDMATRIX_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15(BASE) \
117 ld [BASE + ( 0 * 0x4)], M0; \
118 ld [BASE + ( 1 * 0x4)], M1; \
119 ld [BASE + ( 2 * 0x4)], M2; \
120 ld [BASE + ( 3 * 0x4)], M3; \
121 ld [BASE + ( 4 * 0x4)], M4; \
122 ld [BASE + ( 5 * 0x4)], M5; \
123 ld [BASE + ( 6 * 0x4)], M6; \
124 ld [BASE + ( 7 * 0x4)], M7; \
125 ld [BASE + ( 8 * 0x4)], M8; \
126 ld [BASE + ( 9 * 0x4)], M9; \
127 ld [BASE + (10 * 0x4)], M10; \
128 ld [BASE + (11 * 0x4)], M11; \
129 ld [BASE + (12 * 0x4)], M12; \
130 ld [BASE + (13 * 0x4)], M13; \
131 ld [BASE + (14 * 0x4)], M14; \
132 ld [BASE + (15 * 0x4)], M15
133
134 #define LDMATRIX_0_5_12_13(BASE) \
135 ld [BASE + ( 0 * 0x4)], M0; \
136 ld [BASE + ( 5 * 0x4)], M5; \
137 ld [BASE + (12 * 0x4)], M12; \
138 ld [BASE + (13 * 0x4)], M13
139
140 #define LDMATRIX_0_1_2_4_5_6_8_9_10_12_13_14(BASE) \
141 ld [BASE + ( 0 * 0x4)], M0; \
142 ld [BASE + ( 1 * 0x4)], M1; \
143 ld [BASE + ( 2 * 0x4)], M2; \
144 ld [BASE + ( 4 * 0x4)], M4; \
145 ld [BASE + ( 5 * 0x4)], M5; \
146 ld [BASE + ( 6 * 0x4)], M6; \
147 ld [BASE + ( 8 * 0x4)], M8; \
148 ld [BASE + ( 9 * 0x4)], M9; \
149 ld [BASE + (10 * 0x4)], M10; \
150 ld [BASE + (12 * 0x4)], M12; \
151 ld [BASE + (13 * 0x4)], M13; \
152 ld [BASE + (14 * 0x4)], M14
153
154 #define LDMATRIX_0_5_10_12_13_14(BASE) \
155 ld [BASE + ( 0 * 0x4)], M0; \
156 ld [BASE + ( 5 * 0x4)], M5; \
157 ld [BASE + (10 * 0x4)], M10; \
158 ld [BASE + (12 * 0x4)], M12; \
159 ld [BASE + (13 * 0x4)], M13; \
160 ld [BASE + (14 * 0x4)], M14
161
162 #define LDMATRIX_0_5_8_9_10_14(BASE) \
163 ld [BASE + ( 0 * 0x4)], M0; \
164 ld [BASE + ( 5 * 0x4)], M5; \
165 ld [BASE + ( 8 * 0x4)], M8; \
166 ld [BASE + ( 9 * 0x4)], M9; \
167 ld [BASE + (10 * 0x4)], M10; \
168 ld [BASE + (14 * 0x4)], M14
169
170 #else /* !(USE_LD_DOUBLE) */
171
172 #define LDMATRIX_0_1_2_3_12_13_14_15(BASE) \
173 ldd [BASE + ( 0 * 0x4)], M0; \
174 ldd [BASE + ( 2 * 0x4)], M2; \
175 ldd [BASE + (12 * 0x4)], M12; \
176 ldd [BASE + (14 * 0x4)], M14
177
178 #define LDMATRIX_0_1_12_13(BASE) \
179 ldd [BASE + ( 0 * 0x4)], M0; \
180 ldd [BASE + (12 * 0x4)], M12
181
182 #define LDMATRIX_0_12_13(BASE) \
183 ld [BASE + ( 0 * 0x4)], M0; \
184 ldd [BASE + (12 * 0x4)], M12
185
186 #define LDMATRIX_0_1_2_12_13_14(BASE) \
187 ldd [BASE + ( 0 * 0x4)], M0; \
188 ld [BASE + ( 2 * 0x4)], M2; \
189 ldd [BASE + (12 * 0x4)], M12; \
190 ld [BASE + (14 * 0x4)], M14
191
192 #define LDMATRIX_0_12_13_14(BASE) \
193 ld [BASE + ( 0 * 0x4)], M0; \
194 ldd [BASE + (12 * 0x4)], M12; \
195 ld [BASE + (14 * 0x4)], M14
196
197 #define LDMATRIX_0_14(BASE) \
198 ld [BASE + ( 0 * 0x4)], M0; \
199 ld [BASE + (14 * 0x4)], M14
200
201 #define LDMATRIX_0_1_2_3_4_5_6_7_12_13_14_15(BASE) \
202 ldd [BASE + ( 0 * 0x4)], M0; \
203 ldd [BASE + ( 2 * 0x4)], M2; \
204 ldd [BASE + ( 4 * 0x4)], M4; \
205 ldd [BASE + ( 6 * 0x4)], M6; \
206 ldd [BASE + (12 * 0x4)], M12; \
207 ldd [BASE + (14 * 0x4)], M14
208
209 #define LDMATRIX_0_5_12_13(BASE) \
210 ld [BASE + ( 0 * 0x4)], M0; \
211 ld [BASE + ( 5 * 0x4)], M5; \
212 ldd [BASE + (12 * 0x4)], M12
213
214 #define LDMATRIX_0_1_2_3_4_5_6_12_13_14(BASE) \
215 ldd [BASE + ( 0 * 0x4)], M0; \
216 ldd [BASE + ( 2 * 0x4)], M2; \
217 ldd [BASE + ( 4 * 0x4)], M4; \
218 ld [BASE + ( 6 * 0x4)], M6; \
219 ldd [BASE + (12 * 0x4)], M12; \
220 ld [BASE + (14 * 0x4)], M14
221
222 #define LDMATRIX_0_5_12_13_14(BASE) \
223 ld [BASE + ( 0 * 0x4)], M0; \
224 ld [BASE + ( 5 * 0x4)], M5; \
225 ldd [BASE + (12 * 0x4)], M12; \
226 ld [BASE + (14 * 0x4)], M14
227
228 #define LDMATRIX_0_5_14(BASE) \
229 ld [BASE + ( 0 * 0x4)], M0; \
230 ld [BASE + ( 5 * 0x4)], M5; \
231 ld [BASE + (14 * 0x4)], M14
232
233 #define LDMATRIX_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15(BASE) \
234 ldd [BASE + ( 0 * 0x4)], M0; \
235 ldd [BASE + ( 2 * 0x4)], M2; \
236 ldd [BASE + ( 4 * 0x4)], M4; \
237 ldd [BASE + ( 6 * 0x4)], M6; \
238 ldd [BASE + ( 8 * 0x4)], M8; \
239 ldd [BASE + (10 * 0x4)], M10; \
240 ldd [BASE + (12 * 0x4)], M12; \
241 ldd [BASE + (14 * 0x4)], M14
242
243 #define LDMATRIX_0_1_4_5_12_13(BASE) \
244 ldd [BASE + ( 0 * 0x4)], M0; \
245 ldd [BASE + ( 4 * 0x4)], M4; \
246 ldd [BASE + (12 * 0x4)], M12
247
248 #define LDMATRIX_0_5_12_13(BASE) \
249 ld [BASE + ( 0 * 0x4)], M0; \
250 ld [BASE + ( 5 * 0x4)], M5; \
251 ldd [BASE + (12 * 0x4)], M12
252
253 #define LDMATRIX_0_1_2_4_5_6_8_9_10_12_13_14(BASE) \
254 ldd [BASE + ( 0 * 0x4)], M0; \
255 ld [BASE + ( 2 * 0x4)], M2; \
256 ldd [BASE + ( 4 * 0x4)], M4; \
257 ld [BASE + ( 6 * 0x4)], M6; \
258 ldd [BASE + ( 8 * 0x4)], M8; \
259 ld [BASE + (10 * 0x4)], M10; \
260 ldd [BASE + (12 * 0x4)], M12; \
261 ld [BASE + (14 * 0x4)], M14
262
263 #define LDMATRIX_0_5_10_12_13_14(BASE) \
264 ld [BASE + ( 0 * 0x4)], M0; \
265 ld [BASE + ( 5 * 0x4)], M5; \
266 ld [BASE + (10 * 0x4)], M10; \
267 ldd [BASE + (12 * 0x4)], M12; \
268 ld [BASE + (14 * 0x4)], M14
269
270 #define LDMATRIX_0_5_8_9_10_14(BASE) \
271 ld [BASE + ( 0 * 0x4)], M0; \
272 ld [BASE + ( 5 * 0x4)], M5; \
273 ldd [BASE + ( 8 * 0x4)], M8; \
274 ld [BASE + (10 * 0x4)], M10; \
275 ld [BASE + (14 * 0x4)], M14
276
277 #endif /* USE_LD_DOUBLE */